/*
 * Class22 - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
public class Class22 {
	private static boolean aBoolean439;
	private int anInt440 = -203;
	private boolean aBoolean441 = true;
	private boolean aBoolean442 = false;
	private int anInt443;
	private static int anInt444;
	private int anInt445 = 2;
	private int anInt446 = -766;
	private boolean aBoolean447 = true;
	private boolean aBoolean448 = true;
	private boolean aBoolean449 = false;
	private int anInt450 = -68;
	public static boolean aBoolean451 = true;
	int anInt452;
	int anInt453;
	int anInt454;
	int[][][] anIntArrayArrayArray455;
	Class50_Sub3[][][] aClass50_Sub3ArrayArrayArray456;
	int anInt457;
	int anInt458;
	Class5[] aClass5Array459 = new Class5[5000];
	int[][][] anIntArrayArrayArray460;
	static int anInt461;
	static int anInt462;
	static int anInt463;
	static int anInt464;
	static int anInt465;
	static int anInt466;
	static int anInt467;
	static int anInt468;
	static int anInt469;
	static int anInt470;
	static int anInt471;
	static int anInt472;
	static int anInt473;
	static int anInt474;
	static int anInt475;
	static int anInt476;
	static Class5[] aClass5Array477 = new Class5[100];
	static final int[] anIntArray478 = { 53, -53, -53, 53 };
	static final int[] anIntArray479 = { -53, -53, 53, 53 };
	static final int[] anIntArray480 = { -45, 45, 45, -45 };
	static final int[] anIntArray481 = { 45, 45, -45, -45 };
	static boolean aBoolean482;
	static int anInt483;
	static int anInt484;
	public static int anInt485 = -1;
	public static int anInt486 = -1;
	static int anInt487 = 4;
	static int[] anIntArray488 = new int[Class22.anInt487];
	static Class39[][] aClass39ArrayArray489 = new Class39[Class22.anInt487][500];
	public static int anInt490;
	static Class39[] aClass39Array491 = new Class39[500];
	static Deque aDeque_492 = new Deque(true);
	static final int[] anIntArray493 = { 19, 55, 38, 155, 255, 110, 137, 205, 76 };
	static final int[] anIntArray494 = { 160, 192, 80, 96, 0, 144, 80, 48, 160 };
	static final int[] anIntArray495 = { 76, 8, 137, 4, 0, 1, 38, 2, 19 };
	static final int[] anIntArray496 = { 0, 0, 2, 0, 0, 2, 1, 1, 0 };
	static final int[] anIntArray497 = { 2, 0, 0, 2, 0, 0, 0, 4, 4 };
	static final int[] anIntArray498 = { 0, 4, 4, 8, 0, 0, 8, 0, 0 };
	static final int[] anIntArray499 = { 1, 1, 0, 0, 0, 8, 0, 0, 8 };
	static final int[] anIntArray500 = { 41, 39248, 41, 4643, 41, 41, 41, 41, 41, 41, 41, 41, 41,
		41, 41, 43086, 41, 41, 41, 41, 41, 41, 41, 8602, 41, 28992, 41, 41, 41, 41, 41, 5056, 41,
		41, 41, 7079, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 3131, 41, 41, 41 };
	int[] anIntArray501 = new int[10000];
	int[] anIntArray502 = new int[10000];
	int anInt503;
	int[][] anIntArrayArray504 = { new int[16], { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
		{ 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1 },
		{ 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 },
		{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1 },
		{ 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
		{ 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1 },
		{ 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
		{ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0 },
		{ 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1 },
		{ 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0 },
		{ 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 },
		{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 1 } };
	int[][] anIntArrayArray505 = { { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
		{ 12, 8, 4, 0, 13, 9, 5, 1, 14, 10, 6, 2, 15, 11, 7, 3 },
		{ 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 },
		{ 3, 7, 11, 15, 2, 6, 10, 14, 1, 5, 9, 13, 0, 4, 8, 12 } };
	static boolean[][][][] aBooleanArrayArrayArrayArray506 = new boolean[8][32][51][51];
	static boolean[][] aBooleanArrayArray507;
	static int anInt508;
	static int anInt509;
	static int anInt510;
	static int anInt511;
	static int anInt512;
	static int anInt513;

	public Class22(int[][][] is, int i, int i_0_, int i_1_, byte i_2_) {
		(this).anInt452 = i_0_;
		(this).anInt453 = i_1_;
		(this).anInt454 = i;
		(this).aClass50_Sub3ArrayArrayArray456 = new Class50_Sub3[i_0_][i_1_][i];
		(this).anIntArrayArrayArray460 = new int[i_0_][i_1_ + 1][i + 1];
		(this).anIntArrayArrayArray455 = is;
		if (i_2_ == 5) {
		} else {
			anInt446 = 272;
		}
		method241((byte) 7);
	}

	public static void method240(boolean bool) {
		Class22.aClass5Array477 = null;
		Class22.anIntArray488 = null;
		Class22.aClass39ArrayArray489 = null;
		Class22.aDeque_492 = null;
		Class22.aBooleanArrayArrayArrayArray506 = null;
		if (!bool) {
			Class22.aBooleanArrayArray507 = null;
		}
	}

	public void method241(byte i) {
		for (int i_3_ = 0; i_3_ < (this).anInt452; i_3_++) {
			for (int i_4_ = 0; i_4_ < (this).anInt453; i_4_++) {
				for (int i_5_ = 0; i_5_ < (this).anInt454; i_5_++) {
					(this).aClass50_Sub3ArrayArrayArray456[i_3_][i_4_][i_5_] = null;
				}
			}
		}
		if (i != 7) {
			for (int i_6_ = 1; i_6_ > 0; i_6_++) {
				/* empty */
			}
		}
		for (int i_7_ = 0; i_7_ < Class22.anInt487; i_7_++) {
			for (int i_8_ = 0; i_8_ < Class22.anIntArray488[i_7_]; i_8_++) {
				Class22.aClass39ArrayArray489[i_7_][i_8_] = null;
			}
			Class22.anIntArray488[i_7_] = 0;
		}
		for (int i_9_ = 0; i_9_ < (this).anInt458; i_9_++) {
			(this).aClass5Array459[i_9_] = null;
		}
		(this).anInt458 = 0;
		for (int i_10_ = 0; i_10_ < Class22.aClass5Array477.length; i_10_++) {
			Class22.aClass5Array477[i_10_] = null;
		}
	}

	public void method242(int i, boolean bool) {
		if (!bool) {
			aBoolean448 = !aBoolean448;
		}
		(this).anInt457 = i;
		for (int i_11_ = 0; i_11_ < (this).anInt453; i_11_++) {
			for (int i_12_ = 0; i_12_ < (this).anInt454; i_12_++) {
				if (((this).aClass50_Sub3ArrayArrayArray456[i][i_11_][i_12_]) == null) {
					(this).aClass50_Sub3ArrayArrayArray456[i][i_11_][i_12_] = new Class50_Sub3(i,
						i_11_, i_12_);
				}
			}
		}
	}

	public void method243(boolean bool, int i, int i_13_) {
		Class50_Sub3 class50_sub3 = (this).aClass50_Sub3ArrayArrayArray456[0][i][i_13_];
		for (int i_14_ = 0; i_14_ < 3; i_14_++) {
			Class50_Sub3 class50_sub3_15_ = ((this).aClass50_Sub3ArrayArrayArray456[i_14_][i][i_13_] = ((this).aClass50_Sub3ArrayArrayArray456[i_14_ + 1][i][i_13_]));
			if (class50_sub3_15_ != null) {
				(class50_sub3_15_).anInt1397--;
				for (int i_16_ = 0; i_16_ < (class50_sub3_15_).anInt1407; i_16_++) {
					Class5 class5 = ((class50_sub3_15_).aClass5Array1408[i_16_]);
					if ((class5.anInt125 >> 29 & 0x3) == 2 && (class5).anInt119 == i
						&& (class5).anInt121 == i_13_) {
						(class5).anInt113--;
					}
				}
			}
		}
		if ((this).aClass50_Sub3ArrayArrayArray456[0][i][i_13_] == null) {
			(this).aClass50_Sub3ArrayArrayArray456[0][i][i_13_] = new Class50_Sub3(0, i, i_13_);
		}
		(((this).aClass50_Sub3ArrayArrayArray456[0][i][i_13_])).aClass50_Sub3_1419 = class50_sub3;
		if (!bool) {
			for (int i_17_ = 1; i_17_ > 0; i_17_++) {
				/* empty */
			}
		}
		(this).aClass50_Sub3ArrayArrayArray456[3][i][i_13_] = null;
	}

	public static void method244(int i, int i_18_, int i_19_, int i_20_, int i_21_, int i_22_,
		int i_23_, int i_24_, int i_25_) {
		Class39 class39 = new Class39();
		if (i != -8967) {
			for (int i_26_ = 1; i_26_ > 0; i_26_++) {
				/* empty */
			}
		}
		(class39).anInt675 = i_18_ / 128;
		(class39).anInt676 = i_20_ / 128;
		(class39).anInt677 = i_23_ / 128;
		(class39).anInt678 = i_21_ / 128;
		(class39).anInt679 = i_25_;
		(class39).anInt680 = i_18_;
		(class39).anInt681 = i_20_;
		(class39).anInt682 = i_23_;
		(class39).anInt683 = i_21_;
		(class39).anInt684 = i_24_;
		(class39).anInt685 = i_19_;
		Class22.aClass39ArrayArray489[i_22_][Class22.anIntArray488[i_22_]++] = class39;
	}

	public void method245(int i, int i_27_, int i_28_, int i_29_) {
		Class50_Sub3 class50_sub3 = ((this).aClass50_Sub3ArrayArrayArray456[i][i_27_][i_28_]);
		if (class50_sub3 != null) {
			(((this).aClass50_Sub3ArrayArrayArray456[i][i_27_][i_28_])).anInt1411 = i_29_;
		}
	}

	public void method246(int i, int i_30_, int i_31_, int i_32_, int i_33_, int i_34_, int i_35_,
		int i_36_, int i_37_, int i_38_, int i_39_, int i_40_, int i_41_, int i_42_, int i_43_,
		int i_44_, int i_45_, int i_46_, int i_47_, int i_48_) {
		if (i_32_ == 0) {
			Class3 class3 = new Class3(i_39_, i_40_, i_41_, i_42_, -1, i_47_, false);
			for (int i_49_ = i; i_49_ >= 0; i_49_--) {
				if (((this).aClass50_Sub3ArrayArrayArray456[i_49_][i_30_][i_31_]) == null) {
					(this).aClass50_Sub3ArrayArrayArray456[i_49_][i_30_][i_31_] = new Class50_Sub3(
						i_49_, i_30_, i_31_);
				}
			}
			(this).aClass50_Sub3ArrayArrayArray456[i][i_30_][i_31_].aClass3_1401 = class3;
		} else if (i_32_ == 1) {
			Class3 class3 = new Class3(i_43_, i_44_, i_45_, i_46_, i_34_, i_48_, (i_35_ == i_36_
				&& i_35_ == i_37_ && i_35_ == i_38_));
			for (int i_50_ = i; i_50_ >= 0; i_50_--) {
				if (((this).aClass50_Sub3ArrayArrayArray456[i_50_][i_30_][i_31_]) == null) {
					(this).aClass50_Sub3ArrayArrayArray456[i_50_][i_30_][i_31_] = new Class50_Sub3(
						i_50_, i_30_, i_31_);
				}
			}
			(this).aClass50_Sub3ArrayArrayArray456[i][i_30_][i_31_].aClass3_1401 = class3;
		} else {
			Class20 class20 = new Class20(i_38_, i_43_, i_37_, i_35_, i_30_, i_41_, i_42_, i_48_,
				i_40_, i_45_, 0, i_39_, i_32_, i_36_, i_46_, i_34_, i_47_, i_44_, i_31_, i_33_);
			for (int i_51_ = i; i_51_ >= 0; i_51_--) {
				if (((this).aClass50_Sub3ArrayArrayArray456[i_51_][i_30_][i_31_]) == null) {
					(this).aClass50_Sub3ArrayArrayArray456[i_51_][i_30_][i_31_] = new Class50_Sub3(
						i_51_, i_30_, i_31_);
				}
			}
			(this).aClass50_Sub3ArrayArrayArray456[i][i_30_][i_31_].aClass20_1402 = class20;
		}
	}

	public void method247(int i, int i_52_, int i_53_, byte i_54_, int i_55_, int i_56_, int i_57_,
		Class50_Sub1_Sub4 class50_sub1_sub4) {
		if (i_53_ > 0 && class50_sub1_sub4 != null) {
			Class28 class28 = new Class28();
			class28.aClass50_Sub1_Sub4_570 = class50_sub1_sub4;
			(class28).anInt568 = i * 128 + 64;
			(class28).anInt569 = i_52_ * 128 + 64;
			(class28).anInt567 = i_56_;
			class28.anInt571 = i_55_;
			(class28).aByte572 = i_54_;
			if (((this).aClass50_Sub3ArrayArrayArray456[i_57_][i][i_52_]) == null) {
				(this).aClass50_Sub3ArrayArrayArray456[i_57_][i][i_52_] = new Class50_Sub3(i_57_,
					i, i_52_);
			}
			(((this).aClass50_Sub3ArrayArrayArray456[i_57_][i][i_52_])).aClass28_1405 = class28;
		}
	}

	public void method248(int i, int i_58_, Class50_Sub1_Sub4 class50_sub1_sub4,
		Class50_Sub1_Sub4 class50_sub1_sub4_59_, int i_60_,
		Class50_Sub1_Sub4 class50_sub1_sub4_61_, int i_62_, int i_63_, int i_64_) {
		Class10 class10 = new Class10();
		(class10).aClass50_Sub1_Sub4_176 = class50_sub1_sub4;
		(class10).anInt174 = i_64_ * 128 + 64;
		(class10).anInt175 = i_63_ * 128 + 64;
		(class10).anInt173 = i;
		(class10).anInt179 = i_60_;
		(class10).aClass50_Sub1_Sub4_177 = class50_sub1_sub4_59_;
		(class10).aClass50_Sub1_Sub4_178 = class50_sub1_sub4_61_;
		if (i_62_ < 2 || i_62_ > 2) {
			aBoolean447 = !aBoolean447;
		}
		int i_65_ = 0;
		Class50_Sub3 class50_sub3 = ((this).aClass50_Sub3ArrayArrayArray456[i_58_][i_64_][i_63_]);
		if (class50_sub3 != null) {
			for (int i_66_ = 0; i_66_ < (class50_sub3).anInt1407; i_66_++) {
				if (((class50_sub3).aClass5Array1408[i_66_].aClass50_Sub1_Sub4_117) instanceof Model) {
					int i_67_ = (((Model) ((class50_sub3).aClass5Array1408[i_66_].aClass50_Sub1_Sub4_117)).anInt1675);
					if (i_67_ > i_65_) {
						i_65_ = i_67_;
					}
				}
			}
		}
		(class10).anInt180 = i_65_;
		if (((this).aClass50_Sub3ArrayArrayArray456[i_58_][i_64_][i_63_]) == null) {
			(this).aClass50_Sub3ArrayArrayArray456[i_58_][i_64_][i_63_] = new Class50_Sub3(i_58_,
				i_64_, i_63_);
		}
		(((this).aClass50_Sub3ArrayArrayArray456[i_58_][i_64_][i_63_])).aClass10_1406 = class10;
	}

	public void method249(int i, int i_68_, int i_69_, int i_70_,
		Class50_Sub1_Sub4 class50_sub1_sub4, int i_71_, int i_72_, byte i_73_, int i_74_,
		Class50_Sub1_Sub4 class50_sub1_sub4_75_, int i_76_) {
		if (class50_sub1_sub4_75_ != null || class50_sub1_sub4 != null) {
			Class44 class44 = new Class44();
			class44.anInt726 = i_72_;
			(class44).aByte727 = i_73_;
			(class44).anInt720 = i_71_ * 128 + 64;
			(class44).anInt721 = i_74_ * 128 + 64;
			(class44).anInt719 = i;
			if (i_68_ != 49878) {
				for (int i_77_ = 1; i_77_ > 0; i_77_++) {
					/* empty */
				}
			}
			class44.aClass50_Sub1_Sub4_724 = class50_sub1_sub4_75_;
			class44.aClass50_Sub1_Sub4_725 = class50_sub1_sub4;
			(class44).anInt722 = i_70_;
			(class44).anInt723 = i_69_;
			for (int i_78_ = i_76_; i_78_ >= 0; i_78_--) {
				if (((this).aClass50_Sub3ArrayArrayArray456[i_78_][i_71_][i_74_]) == null) {
					(this).aClass50_Sub3ArrayArrayArray456[i_78_][i_71_][i_74_] = new Class50_Sub3(
						i_78_, i_71_, i_74_);
				}
			}
			(((this).aClass50_Sub3ArrayArrayArray456[i_76_][i_71_][i_74_])).aClass44_1403 = class44;
		}
	}

	public void method250(int i, int i_79_, int i_80_, int i_81_, byte i_82_, int i_83_, int i_84_,
		int i_85_, int i_86_, int i_87_, Class50_Sub1_Sub4 class50_sub1_sub4, int i_88_) {
		if (class50_sub1_sub4 != null) {
			Class35 class35 = new Class35();
			class35.anInt609 = i_81_;
			(class35).aByte610 = i_82_;
			(class35).anInt604 = i_83_ * 128 + 64 + i_86_;
			(class35).anInt605 = i_85_ * 128 + 64 + i_84_;
			if (i_88_ >= 0) {
				anInt446 = 308;
			}
			(class35).anInt603 = i_87_;
			class35.aClass50_Sub1_Sub4_608 = class50_sub1_sub4;
			(class35).anInt606 = i_79_;
			(class35).anInt607 = i_80_;
			for (int i_89_ = i; i_89_ >= 0; i_89_--) {
				if (((this).aClass50_Sub3ArrayArrayArray456[i_89_][i_83_][i_85_]) == null) {
					(this).aClass50_Sub3ArrayArrayArray456[i_89_][i_83_][i_85_] = new Class50_Sub3(
						i_89_, i_83_, i_85_);
				}
			}
			(((this).aClass50_Sub3ArrayArrayArray456[i][i_83_][i_85_])).aClass35_1404 = class35;
		}
	}

	public boolean method251(int i, int i_90_, int i_91_, Class50_Sub1_Sub4 class50_sub1_sub4,
		byte i_92_, int i_93_, int i_94_, int i_95_, int i_96_, int i_97_, int i_98_) {
		if (i_95_ >= 0) {
			throw new NullPointerException();
		}
		if (class50_sub1_sub4 == null) {
			return true;
		}
		int i_99_ = i_94_ * 128 + i_90_ * 64;
		int i_100_ = i_91_ * 128 + i_96_ * 64;
		return method254(i, i_94_, i_91_, i_90_, i_96_, i_99_, i_100_, i_97_, class50_sub1_sub4,
			i_93_, false, i_98_, i_92_);
	}

	public boolean method252(int i, Class50_Sub1_Sub4 class50_sub1_sub4, int i_101_, int i_102_,
		boolean bool, int i_103_, int i_104_, int i_105_, int i_106_, int i_107_) {
		if (class50_sub1_sub4 == null) {
			return true;
		}
		int i_108_ = i_101_ - i_105_;
		int i_109_ = i_106_ - i_105_;
		int i_110_ = i_101_ + i_105_;
		int i_111_ = i_106_ + i_105_;
		if (bool) {
			if (i_107_ > 640 && i_107_ < 1408) {
				i_111_ += 128;
			}
			if (i_107_ > 1152 && i_107_ < 1920) {
				i_110_ += 128;
			}
			if (i_107_ > 1664 || i_107_ < 384) {
				i_109_ -= 128;
			}
			if (i_107_ > 128 && i_107_ < 896) {
				i_108_ -= 128;
			}
		}
		i_108_ /= 128;
		if (i_103_ != 0) {
			anInt450 = 368;
		}
		i_109_ /= 128;
		i_110_ /= 128;
		i_111_ /= 128;
		return method254(i_104_, i_108_, i_109_, i_110_ - i_108_ + 1, i_111_ - i_109_ + 1, i_101_,
			i_106_, i_102_, class50_sub1_sub4, i_107_, true, i, (byte) 0);
	}

	public boolean method253(int i, int i_112_, int i_113_, int i_114_,
		Class50_Sub1_Sub4 class50_sub1_sub4, int i_115_, int i_116_, int i_117_, int i_118_,
		int i_119_, int i_120_, int i_121_, int i_122_) {
		if (i_114_ < 7 || i_114_ > 7) {
			aBoolean449 = !aBoolean449;
		}
		if (class50_sub1_sub4 == null) {
			return true;
		}
		return method254(i_121_, i_115_, i_112_, i_120_ - i_115_ + 1, i_117_ - i_112_ + 1, i_118_,
			i_116_, i, class50_sub1_sub4, i_119_, true, i_122_, (byte) 0);
	}

	private boolean method254(int i, int i_123_, int i_124_, int i_125_, int i_126_, int i_127_,
		int i_128_, int i_129_, Class50_Sub1_Sub4 class50_sub1_sub4, int i_130_, boolean bool,
		int i_131_, byte i_132_) {
		for (int i_133_ = i_123_; i_133_ < i_123_ + i_125_; i_133_++) {
			for (int i_134_ = i_124_; i_134_ < i_124_ + i_126_; i_134_++) {
				if (i_133_ < 0 || i_134_ < 0 || i_133_ >= ((Class22) this).anInt453
					|| i_134_ >= ((Class22) this).anInt454) {
					return false;
				}
				Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_133_][i_134_]);
				if (class50_sub3 != null && ((Class50_Sub3) class50_sub3).anInt1407 >= 5) {
					return false;
				}
			}
		}
		Class5 class5 = new Class5();
		class5.anInt125 = i_131_;
		((Class5) class5).aByte126 = i_132_;
		((Class5) class5).anInt113 = i;
		((Class5) class5).anInt115 = i_127_;
		((Class5) class5).anInt116 = i_128_;
		((Class5) class5).anInt114 = i_129_;
		class5.aClass50_Sub1_Sub4_117 = class50_sub1_sub4;
		class5.anInt118 = i_130_;
		((Class5) class5).anInt119 = i_123_;
		((Class5) class5).anInt121 = i_124_;
		((Class5) class5).anInt120 = i_123_ + i_125_ - 1;
		((Class5) class5).anInt122 = i_124_ + i_126_ - 1;
		for (int i_135_ = i_123_; i_135_ < i_123_ + i_125_; i_135_++) {
			for (int i_136_ = i_124_; i_136_ < i_124_ + i_126_; i_136_++) {
				int i_137_ = 0;
				if (i_135_ > i_123_) {
					i_137_++;
				}
				if (i_135_ < i_123_ + i_125_ - 1) {
					i_137_ += 4;
				}
				if (i_136_ > i_124_) {
					i_137_ += 8;
				}
				if (i_136_ < i_124_ + i_126_ - 1) {
					i_137_ += 2;
				}
				for (int i_138_ = i; i_138_ >= 0; i_138_--) {
					if ((((Class22) this).aClass50_Sub3ArrayArrayArray456[i_138_][i_135_][i_136_]) == null) {
						((Class22) this).aClass50_Sub3ArrayArrayArray456[i_138_][i_135_][i_136_] = new Class50_Sub3(
							i_138_, i_135_, i_136_);
					}
				}
				Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_135_][i_136_]);
				((Class50_Sub3) class50_sub3).aClass5Array1408[((Class50_Sub3) class50_sub3).anInt1407] = class5;
				((Class50_Sub3) class50_sub3).anIntArray1409[((Class50_Sub3) class50_sub3).anInt1407] = i_137_;
				((Class50_Sub3) class50_sub3).anInt1410 |= i_137_;
				((Class50_Sub3) class50_sub3).anInt1407++;
			}
		}
		if (bool) {
			((Class22) this).aClass5Array459[((Class22) this).anInt458++] = class5;
		}
		return true;
	}

	public void method255(int i) {
		i = 16 / i;
		for (int i_139_ = 0; i_139_ < ((Class22) this).anInt458; i_139_++) {
			Class5 class5 = ((Class22) this).aClass5Array459[i_139_];
			method256(class5, 0);
			((Class22) this).aClass5Array459[i_139_] = null;
		}
		((Class22) this).anInt458 = 0;
	}

	private void method256(Class5 class5, int i) {
		for (int i_140_ = ((Class5) class5).anInt119; i_140_ <= ((Class5) class5).anInt120; i_140_++) {
			for (int i_141_ = ((Class5) class5).anInt121; i_141_ <= ((Class5) class5).anInt122; i_141_++) {
				Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[((Class5) class5).anInt113][i_140_][i_141_]);
				if (class50_sub3 != null) {
					for (int i_142_ = 0; i_142_ < ((Class50_Sub3) class50_sub3).anInt1407; i_142_++) {
						if ((((Class50_Sub3) class50_sub3).aClass5Array1408[i_142_]) == class5) {
							((Class50_Sub3) class50_sub3).anInt1407--;
							for (int i_143_ = i_142_; (i_143_ < ((Class50_Sub3) class50_sub3).anInt1407); i_143_++) {
								((Class50_Sub3) class50_sub3).aClass5Array1408[i_143_] = (((Class50_Sub3) class50_sub3).aClass5Array1408[i_143_ + 1]);
								((Class50_Sub3) class50_sub3).anIntArray1409[i_143_] = (((Class50_Sub3) class50_sub3).anIntArray1409[i_143_ + 1]);
							}
							((Class50_Sub3) class50_sub3).aClass5Array1408[((Class50_Sub3) class50_sub3).anInt1407] = null;
							break;
						}
					}
					((Class50_Sub3) class50_sub3).anInt1410 = 0;
					for (int i_144_ = 0; i_144_ < ((Class50_Sub3) class50_sub3).anInt1407; i_144_++) {
						((Class50_Sub3) class50_sub3).anInt1410 |= (((Class50_Sub3) class50_sub3).anIntArray1409[i_144_]);
					}
				}
			}
		}
		if (i != 0) {
			anInt443 = -317;
		}
	}

	public void method257(int i, int i_145_, int i_146_, int i_147_, int i_148_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_146_][i_147_][i]);
		if (class50_sub3 != null) {
			Class35 class35 = ((Class50_Sub3) class50_sub3).aClass35_1404;
			if (class35 != null) {
				int i_149_ = i_147_ * 128 + 64;
				int i_150_ = i * 128 + 64;
				if (i_148_ == 0) {
					((Class35) class35).anInt604 = i_149_
						+ ((((Class35) class35).anInt604 - i_149_) * i_145_ / 16);
					((Class35) class35).anInt605 = i_150_
						+ ((((Class35) class35).anInt605 - i_150_) * i_145_ / 16);
				}
			}
		}
	}

	public void method258(int i, int i_151_, int i_152_, boolean bool) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_151_][i_152_][i]);
		if (class50_sub3 != null) {
			((Class50_Sub3) class50_sub3).aClass44_1403 = null;
			if (!bool) {
				anInt440 = -232;
			}
		}
	}

	public void method259(boolean bool, int i, int i_153_, int i_154_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_154_][i][i_153_]);
		if (!bool && class50_sub3 != null) {
			((Class50_Sub3) class50_sub3).aClass35_1404 = null;
		}
	}

	public void method260(int i, int i_155_, int i_156_, int i_157_) {
		if (i_156_ < 0) {
			Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_155_][i_157_][i]);
			if (class50_sub3 != null) {
				for (int i_158_ = 0; i_158_ < ((Class50_Sub3) class50_sub3).anInt1407; i_158_++) {
					Class5 class5 = (((Class50_Sub3) class50_sub3).aClass5Array1408[i_158_]);
					if ((class5.anInt125 >> 29 & 0x3) == 2 && ((Class5) class5).anInt119 == i_157_
						&& ((Class5) class5).anInt121 == i) {
						method256(class5, 0);
						break;
					}
				}
			}
		}
	}

	public void method261(int i, int i_159_, boolean bool, int i_160_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_160_][i][i_159_]);
		if (class50_sub3 != null) {
			((Class50_Sub3) class50_sub3).aClass28_1405 = null;
			if (!bool) {
				for (int i_161_ = 1; i_161_ > 0; i_161_++) {
					/* empty */
				}
			}
		}
	}

	public void method262(int i, int i_162_, int i_163_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_162_][i_163_]);
		if (class50_sub3 != null) {
			((Class50_Sub3) class50_sub3).aClass10_1406 = null;
		}
	}

	public Class44 method263(int i, int i_164_, int i_165_, int i_166_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_165_][i_166_]);
		if (i_164_ != 17734) {
			throw new NullPointerException();
		}
		if (class50_sub3 == null) {
			return null;
		}
		return ((Class50_Sub3) class50_sub3).aClass44_1403;
	}

	public Class35 method264(int i, int i_167_, int i_168_, boolean bool) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_168_][i_167_]);
		if (bool) {
			throw new NullPointerException();
		}
		if (class50_sub3 == null) {
			return null;
		}
		return ((Class50_Sub3) class50_sub3).aClass35_1404;
	}

	public Class5 method265(int i, byte i_169_, int i_170_, int i_171_) {
		if (i_169_ != 32) {
			for (int i_172_ = 1; i_172_ > 0; i_172_++) {
				/* empty */
			}
		}
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_171_][i][i_170_]);
		if (class50_sub3 == null) {
			return null;
		}
		for (int i_173_ = 0; i_173_ < ((Class50_Sub3) class50_sub3).anInt1407; i_173_++) {
			Class5 class5 = ((Class50_Sub3) class50_sub3).aClass5Array1408[i_173_];
			if ((class5.anInt125 >> 29 & 0x3) == 2 && ((Class5) class5).anInt119 == i
				&& ((Class5) class5).anInt121 == i_170_) {
				return class5;
			}
		}
		return null;
	}

	public Class28 method266(int i, int i_174_, int i_175_, int i_176_) {
		if (i_175_ != 0) {
			throw new NullPointerException();
		}
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_176_][i_174_]);
		if (class50_sub3 == null || ((Class50_Sub3) class50_sub3).aClass28_1405 == null) {
			return null;
		}
		return ((Class50_Sub3) class50_sub3).aClass28_1405;
	}

	public int method267(int i, int i_177_, int i_178_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_177_][i_178_]);
		if (class50_sub3 == null || ((Class50_Sub3) class50_sub3).aClass44_1403 == null) {
			return 0;
		}
		return ((Class50_Sub3) class50_sub3).aClass44_1403.anInt726;
	}

	public int method268(int i, byte i_179_, int i_180_, int i_181_) {
		if (i_179_ != 4) {
			aBoolean449 = !aBoolean449;
		}
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_180_][i][i_181_]);
		if (class50_sub3 == null || ((Class50_Sub3) class50_sub3).aClass35_1404 == null) {
			return 0;
		}
		return ((Class50_Sub3) class50_sub3).aClass35_1404.anInt609;
	}

	public int method269(int i, int i_182_, int i_183_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_182_][i_183_]);
		if (class50_sub3 == null) {
			return 0;
		}
		for (int i_184_ = 0; i_184_ < ((Class50_Sub3) class50_sub3).anInt1407; i_184_++) {
			Class5 class5 = ((Class50_Sub3) class50_sub3).aClass5Array1408[i_184_];
			if ((class5.anInt125 >> 29 & 0x3) == 2 && ((Class5) class5).anInt119 == i_182_
				&& ((Class5) class5).anInt121 == i_183_) {
				return class5.anInt125;
			}
		}
		return 0;
	}

	public int method270(int i, int i_185_, int i_186_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_185_][i_186_]);
		if (class50_sub3 == null || ((Class50_Sub3) class50_sub3).aClass28_1405 == null) {
			return 0;
		}
		return ((Class50_Sub3) class50_sub3).aClass28_1405.anInt571;
	}

	public int method271(int i, int i_187_, int i_188_, int i_189_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i][i_187_][i_188_]);
		if (class50_sub3 == null) {
			return -1;
		}
		if (((Class50_Sub3) class50_sub3).aClass44_1403 != null
			&& ((Class50_Sub3) class50_sub3).aClass44_1403.anInt726 == i_189_) {
			return ((((Class44) ((Class50_Sub3) class50_sub3).aClass44_1403).aByte727) & 0xff);
		}
		if (((Class50_Sub3) class50_sub3).aClass35_1404 != null
			&& ((Class50_Sub3) class50_sub3).aClass35_1404.anInt609 == i_189_) {
			return ((((Class35) ((Class50_Sub3) class50_sub3).aClass35_1404).aByte610) & 0xff);
		}
		if (((Class50_Sub3) class50_sub3).aClass28_1405 != null
			&& ((Class50_Sub3) class50_sub3).aClass28_1405.anInt571 == i_189_) {
			return ((((Class28) ((Class50_Sub3) class50_sub3).aClass28_1405).aByte572) & 0xff);
		}
		for (int i_190_ = 0; i_190_ < ((Class50_Sub3) class50_sub3).anInt1407; i_190_++) {
			if (((Class50_Sub3) class50_sub3).aClass5Array1408[i_190_].anInt125 == i_189_) {
				return (((Class5) (((Class50_Sub3) class50_sub3).aClass5Array1408[i_190_])).aByte126 & 0xff);
			}
		}
		return -1;
	}

	public void method272(byte i, int i_191_, int i_192_, int i_193_) {
		for (int i_194_ = 0; i_194_ < ((Class22) this).anInt452; i_194_++) {
			for (int i_195_ = 0; i_195_ < ((Class22) this).anInt453; i_195_++) {
				for (int i_196_ = 0; i_196_ < ((Class22) this).anInt454; i_196_++) {
					Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_194_][i_195_][i_196_]);
					if (class50_sub3 != null) {
						Class44 class44 = ((Class50_Sub3) class50_sub3).aClass44_1403;
						if (class44 != null
							&& class44.aClass50_Sub1_Sub4_724 != null
							&& (((Class50_Sub1_Sub4) class44.aClass50_Sub1_Sub4_724).aClass40Array1474) != null) {
							method274(i_196_, i_194_, 0, 1,
								((Model) class44.aClass50_Sub1_Sub4_724), i_195_,
								1);
							if (class44.aClass50_Sub1_Sub4_725 != null
								&& (((Class50_Sub1_Sub4) class44.aClass50_Sub1_Sub4_725).aClass40Array1474) != null) {
								method274(i_196_, i_194_, 0, 1,
									((Model) class44.aClass50_Sub1_Sub4_725),
									i_195_, 1);
								method275(
									((Model) class44.aClass50_Sub1_Sub4_724),
									((Model) class44.aClass50_Sub1_Sub4_725), 0,
									0, 0, false);
								((Model) class44.aClass50_Sub1_Sub4_725)
									.method606(i_191_, i_192_, 0, i_193_);
							}
							((Model) class44.aClass50_Sub1_Sub4_724).method606(
								i_191_, i_192_, 0, i_193_);
						}
						for (int i_197_ = 0; i_197_ < ((Class50_Sub3) class50_sub3).anInt1407; i_197_++) {
							Class5 class5 = (((Class50_Sub3) class50_sub3).aClass5Array1408[i_197_]);
							if (class5 != null
								&& class5.aClass50_Sub1_Sub4_117 != null
								&& (((Class50_Sub1_Sub4) class5.aClass50_Sub1_Sub4_117).aClass40Array1474) != null) {
								method274(i_196_, i_194_, 0, (((Class5) class5).anInt120
									- ((Class5) class5).anInt119 + 1),
									((Model) class5.aClass50_Sub1_Sub4_117),
									i_195_, (((Class5) class5).anInt122
										- ((Class5) class5).anInt121 + 1));
								((Model) class5.aClass50_Sub1_Sub4_117).method606(
									i_191_, i_192_, 0, i_193_);
							}
						}
						Class28 class28 = ((Class50_Sub3) class50_sub3).aClass28_1405;
						if (class28 != null
							&& (((Class50_Sub1_Sub4) class28.aClass50_Sub1_Sub4_570).aClass40Array1474) != null) {
							method273(i_195_,
								((Model) class28.aClass50_Sub1_Sub4_570), i_196_,
								i_194_, 0);
							((Model) class28.aClass50_Sub1_Sub4_570).method606(
								i_191_, i_192_, 0, i_193_);
						}
					}
				}
			}
		}
		if (i == 2) {
			boolean bool = false;
		}
	}

	private void method273(int i, Model model, int i_198_,
		int i_199_, int i_200_) {
		if (i_200_ == 0) {
			if (i < ((Class22) this).anInt453) {
				Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_199_][i + 1][i_198_]);
				if (class50_sub3 != null
					&& ((Class50_Sub3) class50_sub3).aClass28_1405 != null
					&& (((Class50_Sub1_Sub4) (((Class50_Sub3) class50_sub3).aClass28_1405.aClass50_Sub1_Sub4_570)).aClass40Array1474) != null) {
					method275(
						model,
						((Model) (((Class50_Sub3) class50_sub3).aClass28_1405.aClass50_Sub1_Sub4_570)),
						128, 0, 0, true);
				}
			}
			if (i_198_ < ((Class22) this).anInt453) {
				Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_199_][i][i_198_ + 1]);
				if (class50_sub3 != null
					&& ((Class50_Sub3) class50_sub3).aClass28_1405 != null
					&& (((Class50_Sub1_Sub4) (((Class50_Sub3) class50_sub3).aClass28_1405.aClass50_Sub1_Sub4_570)).aClass40Array1474) != null) {
					method275(
						model,
						((Model) (((Class50_Sub3) class50_sub3).aClass28_1405.aClass50_Sub1_Sub4_570)),
						0, 0, 128, true);
				}
			}
			if (i < ((Class22) this).anInt453 && i_198_ < ((Class22) this).anInt454) {
				Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_199_][i + 1][i_198_ + 1]);
				if (class50_sub3 != null
					&& ((Class50_Sub3) class50_sub3).aClass28_1405 != null
					&& (((Class50_Sub1_Sub4) (((Class50_Sub3) class50_sub3).aClass28_1405.aClass50_Sub1_Sub4_570)).aClass40Array1474) != null) {
					method275(
						model,
						((Model) (((Class50_Sub3) class50_sub3).aClass28_1405.aClass50_Sub1_Sub4_570)),
						128, 0, 128, true);
				}
			}
			if (i < ((Class22) this).anInt453 && i_198_ > 0) {
				Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_199_][i + 1][i_198_ - 1]);
				if (class50_sub3 != null
					&& ((Class50_Sub3) class50_sub3).aClass28_1405 != null
					&& (((Class50_Sub1_Sub4) (((Class50_Sub3) class50_sub3).aClass28_1405.aClass50_Sub1_Sub4_570)).aClass40Array1474) != null) {
					method275(
						model,
						((Model) (((Class50_Sub3) class50_sub3).aClass28_1405.aClass50_Sub1_Sub4_570)),
						128, 0, -128, true);
				}
			}
		}
	}

	private void method274(int i, int i_201_, int i_202_, int i_203_,
		Model model, int i_204_, int i_205_) {
		boolean bool = true;
		int i_206_ = i_204_;
		int i_207_ = i_204_ + i_203_;
		int i_208_ = i - 1;
		int i_209_ = i + i_205_;
		for (int i_210_ = i_201_; i_210_ <= i_201_ + 1; i_210_++) {
			if (i_210_ != ((Class22) this).anInt452) {
				for (int i_211_ = i_206_; i_211_ <= i_207_; i_211_++) {
					if (i_211_ >= 0 && i_211_ < ((Class22) this).anInt453) {
						for (int i_212_ = i_208_; i_212_ <= i_209_; i_212_++) {
							if (i_212_ >= 0
								&& i_212_ < ((Class22) this).anInt454
								&& (!bool || i_211_ >= i_207_ || i_212_ >= i_209_ || i_212_ < i
									&& i_211_ != i_204_)) {
								Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_210_][i_211_][i_212_]);
								if (class50_sub3 != null) {
									int i_213_ = (((((Class22) this).anIntArrayArrayArray455[i_210_][i_211_][i_212_])
										+ (((Class22) this).anIntArrayArrayArray455[i_210_][i_211_ + 1][i_212_])
										+ (((Class22) this).anIntArrayArrayArray455[i_210_][i_211_][i_212_ + 1]) + (((Class22) this).anIntArrayArrayArray455[i_210_][i_211_ + 1][i_212_ + 1])) / 4 - (((((Class22) this).anIntArrayArrayArray455[i_201_][i_204_][i])
										+ (((Class22) this).anIntArrayArrayArray455[i_201_][i_204_ + 1][i])
										+ (((Class22) this).anIntArrayArrayArray455[i_201_][i_204_][i + 1]) + (((Class22) this).anIntArrayArrayArray455[i_201_][i_204_ + 1][i + 1])) / 4));
									Class44 class44 = (((Class50_Sub3) class50_sub3).aClass44_1403);
									if (class44 != null
										&& (class44.aClass50_Sub1_Sub4_724 != null)
										&& (((Class50_Sub1_Sub4) class44.aClass50_Sub1_Sub4_724).aClass40Array1474) != null) {
										method275(
											model,
											((Model) (class44.aClass50_Sub1_Sub4_724)),
											((i_211_ - i_204_) * 128 + (1 - i_203_) * 64), i_213_,
											((i_212_ - i) * 128 + (1 - i_205_) * 64), bool);
									}
									if (class44 != null
										&& (class44.aClass50_Sub1_Sub4_725 != null)
										&& (((Class50_Sub1_Sub4) class44.aClass50_Sub1_Sub4_725).aClass40Array1474) != null) {
										method275(
											model,
											((Model) (class44.aClass50_Sub1_Sub4_725)),
											((i_211_ - i_204_) * 128 + (1 - i_203_) * 64), i_213_,
											((i_212_ - i) * 128 + (1 - i_205_) * 64), bool);
									}
									for (int i_214_ = 0; (i_214_ < (((Class50_Sub3) class50_sub3).anInt1407)); i_214_++) {
										Class5 class5 = (((Class50_Sub3) class50_sub3).aClass5Array1408[i_214_]);
										if (class5 != null
											&& (class5.aClass50_Sub1_Sub4_117 != null)
											&& (((Class50_Sub1_Sub4) class5.aClass50_Sub1_Sub4_117).aClass40Array1474) != null) {
											int i_215_ = (((Class5) class5).anInt120
												- ((Class5) class5).anInt119 + 1);
											int i_216_ = (((Class5) class5).anInt122
												- ((Class5) class5).anInt121 + 1);
											method275(
												model,
												((Model) (class5.aClass50_Sub1_Sub4_117)),
												((((Class5) class5).anInt119 - i_204_) * 128 + (i_215_ - i_203_) * 64),
												i_213_,
												((((Class5) class5).anInt121 - i) * 128 + (i_216_ - i_205_) * 64),
												bool);
										}
									}
								}
							}
						}
					}
				}
				i_206_--;
				bool = false;
			}
		}
		if (i_202_ != 0) {
			/* empty */
		}
	}

	private void method275(Model model,
		Model model_217_, int i, int i_218_, int i_219_,
		boolean bool) {
		((Class22) this).anInt503++;
		int i_220_ = 0;
		int[] is = model_217_.anIntArray1649;
		int i_221_ = model_217_.anInt1648;
		int i_222_ = (((Model) model_217_).anInt1669 >> 16);
		int i_223_ = (((Model) model_217_).anInt1669 << 16 >> 16);
		int i_224_ = (((Model) model_217_).anInt1670 >> 16);
		int i_225_ = (((Model) model_217_).anInt1670 << 16 >> 16);
		for (int i_226_ = 0; i_226_ < model.anInt1648; i_226_++) {
			Class40 class40 = (((Class50_Sub1_Sub4) model).aClass40Array1474[i_226_]);
			Class40 class40_227_ = (((Model) model).aClass40Array1681[i_226_]);
			if (((Class40) class40_227_).anInt696 != 0) {
				int i_228_ = model.anIntArray1650[i_226_] - i_218_;
				if (i_228_ <= model_217_.anInt1672) {
					int i_229_ = model.anIntArray1649[i_226_] - i;
					if (i_229_ >= i_222_ && i_229_ <= i_223_) {
						int i_230_ = (model.anIntArray1651[i_226_] - i_219_);
						if (i_230_ >= i_225_ && i_230_ <= i_224_) {
							for (int i_231_ = 0; i_231_ < i_221_; i_231_++) {
								Class40 class40_232_ = (((Class50_Sub1_Sub4) model_217_).aClass40Array1474[i_231_]);
								Class40 class40_233_ = (((Model) model_217_).aClass40Array1681[i_231_]);
								if (i_229_ == is[i_231_]
									&& i_230_ == (model_217_.anIntArray1651[i_231_])
									&& i_228_ == (model_217_.anIntArray1650[i_231_])
									&& (((Class40) class40_233_).anInt696 != 0)) {
									((Class40) class40).anInt693 += ((Class40) class40_233_).anInt693;
									((Class40) class40).anInt694 += ((Class40) class40_233_).anInt694;
									((Class40) class40).anInt695 += ((Class40) class40_233_).anInt695;
									((Class40) class40).anInt696 += ((Class40) class40_233_).anInt696;
									((Class40) class40_232_).anInt693 += ((Class40) class40_227_).anInt693;
									((Class40) class40_232_).anInt694 += ((Class40) class40_227_).anInt694;
									((Class40) class40_232_).anInt695 += ((Class40) class40_227_).anInt695;
									((Class40) class40_232_).anInt696 += ((Class40) class40_227_).anInt696;
									i_220_++;
									((Class22) this).anIntArray501[i_226_] = ((Class22) this).anInt503;
									((Class22) this).anIntArray502[i_231_] = ((Class22) this).anInt503;
								}
							}
						}
					}
				}
			}
		}
		if (i_220_ >= 3 && bool) {
			for (int i_234_ = 0; i_234_ < model.anInt1652; i_234_++) {
				if (((((Class22) this).anIntArray501[model.anIntArray1653[i_234_]]) == ((Class22) this).anInt503)
					&& ((((Class22) this).anIntArray501[model.anIntArray1654[i_234_]]) == ((Class22) this).anInt503)
					&& ((((Class22) this).anIntArray501[model.anIntArray1655[i_234_]]) == ((Class22) this).anInt503)) {
					model.anIntArray1659[i_234_] = -1;
				}
			}
			for (int i_235_ = 0; i_235_ < model_217_.anInt1652; i_235_++) {
				if (((((Class22) this).anIntArray502[model_217_.anIntArray1653[i_235_]]) == ((Class22) this).anInt503)
					&& ((((Class22) this).anIntArray502[model_217_.anIntArray1654[i_235_]]) == ((Class22) this).anInt503)
					&& ((((Class22) this).anIntArray502[model_217_.anIntArray1655[i_235_]]) == ((Class22) this).anInt503)) {
					model_217_.anIntArray1659[i_235_] = -1;
				}
			}
		}
	}

	public void method276(int[] is, int i, int i_236_, int i_237_, int i_238_, int i_239_) {
		Class50_Sub3 class50_sub3 = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_237_][i_238_][i_239_]);
		if (class50_sub3 != null) {
			Class3 class3 = class50_sub3.aClass3_1401;
			if (class3 != null) {
				int i_240_ = ((Class3) class3).anInt101;
				if (i_240_ != 0) {
					for (int i_241_ = 0; i_241_ < 4; i_241_++) {
						is[i] = i_240_;
						is[i + 1] = i_240_;
						is[i + 2] = i_240_;
						is[i + 3] = i_240_;
						i += i_236_;
					}
				}
			} else {
				Class20 class20 = class50_sub3.aClass20_1402;
				if (class20 != null) {
					int i_242_ = ((Class20) class20).anInt414;
					int i_243_ = ((Class20) class20).anInt415;
					int i_244_ = ((Class20) class20).anInt416;
					int i_245_ = ((Class20) class20).anInt417;
					int[] is_246_ = ((Class22) this).anIntArrayArray504[i_242_];
					int[] is_247_ = ((Class22) this).anIntArrayArray505[i_243_];
					int i_248_ = 0;
					if (i_244_ != 0) {
						for (int i_249_ = 0; i_249_ < 4; i_249_++) {
							is[i] = (is_246_[is_247_[i_248_++]] == 0 ? i_244_ : i_245_);
							is[i + 1] = (is_246_[is_247_[i_248_++]] == 0 ? i_244_ : i_245_);
							is[i + 2] = (is_246_[is_247_[i_248_++]] == 0 ? i_244_ : i_245_);
							is[i + 3] = (is_246_[is_247_[i_248_++]] == 0 ? i_244_ : i_245_);
							i += i_236_;
						}
					} else {
						for (int i_250_ = 0; i_250_ < 4; i_250_++) {
							if (is_246_[is_247_[i_248_++]] != 0) {
								is[i] = i_245_;
							}
							if (is_246_[is_247_[i_248_++]] != 0) {
								is[i + 1] = i_245_;
							}
							if (is_246_[is_247_[i_248_++]] != 0) {
								is[i + 2] = i_245_;
							}
							if (is_246_[is_247_[i_248_++]] != 0) {
								is[i + 3] = i_245_;
							}
							i += i_236_;
						}
					}
				}
			}
		}
	}

	public static void method277(int i, int i_251_, int[] is, int i_252_, int i_253_, int i_254_) {
		Class22.anInt510 = 0;
		Class22.anInt511 = 0;
		Class22.anInt512 = i_254_;
		Class22.anInt513 = i;
		Class22.anInt508 = i_254_ / 2;
		Class22.anInt509 = i / 2;
		boolean[][][][] bools = new boolean[9][32][53][53];
		for (int i_255_ = 128; i_255_ <= 384; i_255_ += 32) {
			for (int i_256_ = 0; i_256_ < 2048; i_256_ += 64) {
				Class22.anInt473 = Model.anIntArray1710[i_255_];
				Class22.anInt474 = Model.anIntArray1711[i_255_];
				Class22.anInt475 = Model.anIntArray1710[i_256_];
				Class22.anInt476 = Model.anIntArray1711[i_256_];
				int i_257_ = (i_255_ - 128) / 32;
				int i_258_ = i_256_ / 64;
				for (int i_259_ = -26; i_259_ <= 26; i_259_++) {
					for (int i_260_ = -26; i_260_ <= 26; i_260_++) {
						int i_261_ = i_259_ * 128;
						int i_262_ = i_260_ * 128;
						boolean bool = false;
						for (int i_263_ = -i_253_; i_263_ <= i_252_; i_263_ += 128) {
							if (Class22.method278(i_262_, i_261_, Class22.anInt444, is[i_257_]
								+ i_263_)) {
								bool = true;
								break;
							}
						}
						bools[i_257_][i_258_][i_259_ + 25 + 1][i_260_ + 25 + 1] = bool;
					}
				}
			}
		}
		for (int i_264_ = 0; i_264_ < 8; i_264_++) {
			for (int i_265_ = 0; i_265_ < 32; i_265_++) {
				for (int i_266_ = -25; i_266_ < 25; i_266_++) {
					for (int i_267_ = -25; i_267_ < 25; i_267_++) {
						boolean bool = false;
						while_8_: for (int i_268_ = -1; i_268_ <= 1; i_268_++) {
							for (int i_269_ = -1; i_269_ <= 1; i_269_++) {
								if (bools[i_264_][i_265_][i_266_ + i_268_ + 25 + 1][i_267_ + i_269_
									+ 25 + 1]) {
									bool = true;
									break while_8_;
								}
								if (bools[i_264_][(i_265_ + 1) % 31][i_266_ + i_268_ + 25 + 1][i_267_
									+ i_269_ + 25 + 1]) {
									bool = true;
									break while_8_;
								}
								if (bools[i_264_ + 1][i_265_][i_266_ + i_268_ + 25 + 1][i_267_
									+ i_269_ + 25 + 1]) {
									bool = true;
									break while_8_;
								}
								if (bools[i_264_ + 1][(i_265_ + 1) % 31][i_266_ + i_268_ + 25 + 1][i_267_
									+ i_269_ + 25 + 1]) {
									bool = true;
									break while_8_;
								}
							}
						}
						Class22.aBooleanArrayArrayArrayArray506[i_264_][i_265_][i_266_ + 25][i_267_ + 25] = bool;
					}
				}
			}
		}
		if (i_251_ != 22845) {
			/* empty */
		}
	}

	public static boolean method278(int i, int i_270_, int i_271_, int i_272_) {
		int i_273_ = i * Class22.anInt475 + i_270_ * Class22.anInt476 >> 16;
		int i_274_ = i * Class22.anInt476 - i_270_ * Class22.anInt475 >> 16;
		if (i_271_ != 0) {
			Class22.aBoolean439 = !Class22.aBoolean439;
		}
		int i_275_ = i_272_ * Class22.anInt473 + i_274_ * Class22.anInt474 >> 16;
		int i_276_ = i_272_ * Class22.anInt474 - i_274_ * Class22.anInt473 >> 16;
		if (i_275_ < 50 || i_275_ > 3500) {
			return false;
		}
		int i_277_ = Class22.anInt508 + (i_273_ << 9) / i_275_;
		int i_278_ = Class22.anInt509 + (i_276_ << 9) / i_275_;
		if (i_277_ < Class22.anInt510 || i_277_ > Class22.anInt512 || i_278_ < Class22.anInt511
			|| i_278_ > Class22.anInt513) {
			return false;
		}
		return true;
	}

	public void method279(int i, int i_279_, int i_280_) {
		Class22.aBoolean482 = true;
		Class22.anInt483 = i_279_;
		Class22.anInt484 = i_280_;
		Class22.anInt485 = -1;
		if (i == 0) {
			Class22.anInt486 = -1;
		}
	}

	public void method280(int i, int i_281_, int i_282_, int i_283_, int i_284_, int i_285_,
		int i_286_) {
		if (i < 0) {
			i = 0;
		} else if (i >= ((Class22) this).anInt453 * 128) {
			i = ((Class22) this).anInt453 * 128 - 1;
		}
		if (i_284_ < 0) {
			i_284_ = 0;
		} else if (i_284_ >= ((Class22) this).anInt454 * 128) {
			i_284_ = ((Class22) this).anInt454 * 128 - 1;
		}
		Class22.anInt463++;
		Class22.anInt473 = Model.anIntArray1710[i_286_];
		Class22.anInt474 = Model.anIntArray1711[i_286_];
		Class22.anInt475 = Model.anIntArray1710[i_285_];
		Class22.anInt476 = Model.anIntArray1711[i_285_];
		Class22.aBooleanArrayArray507 = (Class22.aBooleanArrayArrayArrayArray506[(i_286_ - 128) / 32][i_285_ / 64]);
		Class22.anInt470 = i;
		Class22.anInt471 = i_283_;
		Class22.anInt472 = i_284_;
		Class22.anInt468 = i / 128;
		Class22.anInt469 = i_284_ / 128;
		Class22.anInt462 = i_281_;
		Class22.anInt464 = Class22.anInt468 - 25;
		if (i_282_ == 0) {
			if (Class22.anInt464 < 0) {
				Class22.anInt464 = 0;
			}
			Class22.anInt466 = Class22.anInt469 - 25;
			if (Class22.anInt466 < 0) {
				Class22.anInt466 = 0;
			}
			Class22.anInt465 = Class22.anInt468 + 25;
			if (Class22.anInt465 > ((Class22) this).anInt453) {
				Class22.anInt465 = ((Class22) this).anInt453;
			}
			Class22.anInt467 = Class22.anInt469 + 25;
			if (Class22.anInt467 > ((Class22) this).anInt454) {
				Class22.anInt467 = ((Class22) this).anInt454;
			}
			method286(anInt445);
			Class22.anInt461 = 0;
			for (int i_287_ = ((Class22) this).anInt457; i_287_ < ((Class22) this).anInt452; i_287_++) {
				Class50_Sub3[][] class50_sub3s = ((Class22) this).aClass50_Sub3ArrayArrayArray456[i_287_];
				for (int i_288_ = Class22.anInt464; i_288_ < Class22.anInt465; i_288_++) {
					for (int i_289_ = Class22.anInt466; i_289_ < Class22.anInt467; i_289_++) {
						Class50_Sub3 class50_sub3 = class50_sub3s[i_288_][i_289_];
						if (class50_sub3 != null) {
							if ((((Class50_Sub3) class50_sub3).anInt1411 > i_281_)
								|| (!(Class22.aBooleanArrayArray507[i_288_ - Class22.anInt468 + 25][i_289_
									- Class22.anInt469 + 25]) && (((Class22) this).anIntArrayArrayArray455[i_287_][i_288_][i_289_])
									- i_283_ < 2000)) {
								((Class50_Sub3) class50_sub3).aBoolean1412 = false;
								((Class50_Sub3) class50_sub3).aBoolean1413 = false;
								((Class50_Sub3) class50_sub3).anInt1415 = 0;
							} else {
								((Class50_Sub3) class50_sub3).aBoolean1412 = true;
								((Class50_Sub3) class50_sub3).aBoolean1413 = true;
								if (((Class50_Sub3) class50_sub3).anInt1407 > 0) {
									((Class50_Sub3) class50_sub3).aBoolean1414 = true;
								} else {
									((Class50_Sub3) class50_sub3).aBoolean1414 = false;
								}
								Class22.anInt461++;
							}
						}
					}
				}
			}
			for (int i_290_ = ((Class22) this).anInt457; i_290_ < ((Class22) this).anInt452; i_290_++) {
				Class50_Sub3[][] class50_sub3s = ((Class22) this).aClass50_Sub3ArrayArrayArray456[i_290_];
				for (int i_291_ = -25; i_291_ <= 0; i_291_++) {
					int i_292_ = Class22.anInt468 + i_291_;
					int i_293_ = Class22.anInt468 - i_291_;
					if (i_292_ >= Class22.anInt464 || i_293_ < Class22.anInt465) {
						for (int i_294_ = -25; i_294_ <= 0; i_294_++) {
							int i_295_ = Class22.anInt469 + i_294_;
							int i_296_ = Class22.anInt469 - i_294_;
							if (i_292_ >= Class22.anInt464) {
								if (i_295_ >= Class22.anInt466) {
									Class50_Sub3 class50_sub3 = class50_sub3s[i_292_][i_295_];
									if (class50_sub3 != null
										&& (((Class50_Sub3) class50_sub3).aBoolean1412)) {
										method281(class50_sub3, true);
									}
								}
								if (i_296_ < Class22.anInt467) {
									Class50_Sub3 class50_sub3 = class50_sub3s[i_292_][i_296_];
									if (class50_sub3 != null
										&& (((Class50_Sub3) class50_sub3).aBoolean1412)) {
										method281(class50_sub3, true);
									}
								}
							}
							if (i_293_ < Class22.anInt465) {
								if (i_295_ >= Class22.anInt466) {
									Class50_Sub3 class50_sub3 = class50_sub3s[i_293_][i_295_];
									if (class50_sub3 != null
										&& (((Class50_Sub3) class50_sub3).aBoolean1412)) {
										method281(class50_sub3, true);
									}
								}
								if (i_296_ < Class22.anInt467) {
									Class50_Sub3 class50_sub3 = class50_sub3s[i_293_][i_296_];
									if (class50_sub3 != null
										&& (((Class50_Sub3) class50_sub3).aBoolean1412)) {
										method281(class50_sub3, true);
									}
								}
							}
							if (Class22.anInt461 == 0) {
								Class22.aBoolean482 = false;
								return;
							}
						}
					}
				}
			}
			for (int i_297_ = ((Class22) this).anInt457; i_297_ < ((Class22) this).anInt452; i_297_++) {
				Class50_Sub3[][] class50_sub3s = ((Class22) this).aClass50_Sub3ArrayArrayArray456[i_297_];
				for (int i_298_ = -25; i_298_ <= 0; i_298_++) {
					int i_299_ = Class22.anInt468 + i_298_;
					int i_300_ = Class22.anInt468 - i_298_;
					if (i_299_ >= Class22.anInt464 || i_300_ < Class22.anInt465) {
						for (int i_301_ = -25; i_301_ <= 0; i_301_++) {
							int i_302_ = Class22.anInt469 + i_301_;
							int i_303_ = Class22.anInt469 - i_301_;
							if (i_299_ >= Class22.anInt464) {
								if (i_302_ >= Class22.anInt466) {
									Class50_Sub3 class50_sub3 = class50_sub3s[i_299_][i_302_];
									if (class50_sub3 != null
										&& (((Class50_Sub3) class50_sub3).aBoolean1412)) {
										method281(class50_sub3, false);
									}
								}
								if (i_303_ < Class22.anInt467) {
									Class50_Sub3 class50_sub3 = class50_sub3s[i_299_][i_303_];
									if (class50_sub3 != null
										&& (((Class50_Sub3) class50_sub3).aBoolean1412)) {
										method281(class50_sub3, false);
									}
								}
							}
							if (i_300_ < Class22.anInt465) {
								if (i_302_ >= Class22.anInt466) {
									Class50_Sub3 class50_sub3 = class50_sub3s[i_300_][i_302_];
									if (class50_sub3 != null
										&& (((Class50_Sub3) class50_sub3).aBoolean1412)) {
										method281(class50_sub3, false);
									}
								}
								if (i_303_ < Class22.anInt467) {
									Class50_Sub3 class50_sub3 = class50_sub3s[i_300_][i_303_];
									if (class50_sub3 != null
										&& (((Class50_Sub3) class50_sub3).aBoolean1412)) {
										method281(class50_sub3, false);
									}
								}
							}
							if (Class22.anInt461 == 0) {
								Class22.aBoolean482 = false;
								return;
							}
						}
					}
				}
			}
			Class22.aBoolean482 = false;
		}
	}

	public void method281(Class50_Sub3 class50_sub3, boolean bool) {
		Class22.aDeque_492.method155(class50_sub3);
		for (;;) {
			Class50_Sub3 class50_sub3_304_ = (Class50_Sub3) Class22.aDeque_492.popFront();
			if (class50_sub3_304_ == null) {
				break;
			}
			if (((Class50_Sub3) class50_sub3_304_).aBoolean1413) {
				int i = ((Class50_Sub3) class50_sub3_304_).anInt1398;
				int i_305_ = ((Class50_Sub3) class50_sub3_304_).anInt1399;
				int i_306_ = ((Class50_Sub3) class50_sub3_304_).anInt1397;
				int i_307_ = ((Class50_Sub3) class50_sub3_304_).anInt1400;
				Class50_Sub3[][] class50_sub3s = ((Class22) this).aClass50_Sub3ArrayArrayArray456[i_306_];
				if (((Class50_Sub3) class50_sub3_304_).aBoolean1412) {
					if (bool) {
						if (i_306_ > 0) {
							Class50_Sub3 class50_sub3_308_ = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_306_ - 1][i][i_305_]);
							if (class50_sub3_308_ != null
								&& (((Class50_Sub3) class50_sub3_308_).aBoolean1413)) {
								continue;
							}
						}
						if (i <= Class22.anInt468 && i > Class22.anInt464) {
							Class50_Sub3 class50_sub3_309_ = class50_sub3s[i - 1][i_305_];
							if (class50_sub3_309_ != null
								&& (((Class50_Sub3) class50_sub3_309_).aBoolean1413)
								&& ((((Class50_Sub3) class50_sub3_309_).aBoolean1412) || ((((Class50_Sub3) class50_sub3_304_).anInt1410) & 0x1) == 0)) {
								continue;
							}
						}
						if (i >= Class22.anInt468 && i < Class22.anInt465 - 1) {
							Class50_Sub3 class50_sub3_310_ = class50_sub3s[i + 1][i_305_];
							if (class50_sub3_310_ != null
								&& (((Class50_Sub3) class50_sub3_310_).aBoolean1413)
								&& ((((Class50_Sub3) class50_sub3_310_).aBoolean1412) || ((((Class50_Sub3) class50_sub3_304_).anInt1410) & 0x4) == 0)) {
								continue;
							}
						}
						if (i_305_ <= Class22.anInt469 && i_305_ > Class22.anInt466) {
							Class50_Sub3 class50_sub3_311_ = class50_sub3s[i][i_305_ - 1];
							if (class50_sub3_311_ != null
								&& (((Class50_Sub3) class50_sub3_311_).aBoolean1413)
								&& ((((Class50_Sub3) class50_sub3_311_).aBoolean1412) || ((((Class50_Sub3) class50_sub3_304_).anInt1410) & 0x8) == 0)) {
								continue;
							}
						}
						if (i_305_ >= Class22.anInt469 && i_305_ < Class22.anInt467 - 1) {
							Class50_Sub3 class50_sub3_312_ = class50_sub3s[i][i_305_ + 1];
							if (class50_sub3_312_ != null
								&& (((Class50_Sub3) class50_sub3_312_).aBoolean1413)
								&& ((((Class50_Sub3) class50_sub3_312_).aBoolean1412) || ((((Class50_Sub3) class50_sub3_304_).anInt1410) & 0x2) == 0)) {
								continue;
							}
						}
					} else {
						bool = true;
					}
					((Class50_Sub3) class50_sub3_304_).aBoolean1412 = false;
					if (((Class50_Sub3) class50_sub3_304_).aClass50_Sub3_1419 != null) {
						Class50_Sub3 class50_sub3_313_ = (((Class50_Sub3) class50_sub3_304_).aClass50_Sub3_1419);
						if (class50_sub3_313_.aClass3_1401 != null) {
							if (!method287(0, i, i_305_)) {
								method282(class50_sub3_313_.aClass3_1401, 0, Class22.anInt473,
									Class22.anInt474, Class22.anInt475, Class22.anInt476, i, i_305_);
							}
						} else if (class50_sub3_313_.aClass20_1402 != null
							&& !method287(0, i, i_305_)) {
							method283(Class22.anInt474, Class22.anInt476,
								class50_sub3_313_.aClass20_1402, Class22.anInt473, i_305_, i,
								Class22.anInt475, (byte) 3);
						}
						Class44 class44 = ((Class50_Sub3) class50_sub3_313_).aClass44_1403;
						if (class44 != null) {
							class44.aClass50_Sub1_Sub4_724.method571(0, Class22.anInt473,
								Class22.anInt474, Class22.anInt475, Class22.anInt476,
								((Class44) class44).anInt720 - Class22.anInt470,
								((Class44) class44).anInt719 - Class22.anInt471,
								((Class44) class44).anInt721 - Class22.anInt472, class44.anInt726);
						}
						for (int i_314_ = 0; (i_314_ < ((Class50_Sub3) class50_sub3_313_).anInt1407); i_314_++) {
							Class5 class5 = (((Class50_Sub3) class50_sub3_313_).aClass5Array1408[i_314_]);
							if (class5 != null) {
								class5.aClass50_Sub1_Sub4_117.method571(class5.anInt118,
									Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476,
									((Class5) class5).anInt115 - Class22.anInt470,
									((Class5) class5).anInt114 - Class22.anInt471,
									((Class5) class5).anInt116 - Class22.anInt472, class5.anInt125);
							}
						}
					}
					boolean bool_315_ = false;
					if (class50_sub3_304_.aClass3_1401 != null) {
						if (!method287(i_307_, i, i_305_)) {
							bool_315_ = true;
							method282(class50_sub3_304_.aClass3_1401, i_307_, Class22.anInt473,
								Class22.anInt474, Class22.anInt475, Class22.anInt476, i, i_305_);
						}
					} else if (class50_sub3_304_.aClass20_1402 != null
						&& !method287(i_307_, i, i_305_)) {
						bool_315_ = true;
						method283(Class22.anInt474, Class22.anInt476,
							class50_sub3_304_.aClass20_1402, Class22.anInt473, i_305_, i,
							Class22.anInt475, (byte) 3);
					}
					int i_316_ = 0;
					int i_317_ = 0;
					Class44 class44 = ((Class50_Sub3) class50_sub3_304_).aClass44_1403;
					Class35 class35 = ((Class50_Sub3) class50_sub3_304_).aClass35_1404;
					if (class44 != null || class35 != null) {
						if (Class22.anInt468 == i) {
							i_316_++;
						} else if (Class22.anInt468 < i) {
							i_316_ += 2;
						}
						if (Class22.anInt469 == i_305_) {
							i_316_ += 3;
						} else if (Class22.anInt469 > i_305_) {
							i_316_ += 6;
						}
						i_317_ = Class22.anIntArray493[i_316_];
						((Class50_Sub3) class50_sub3_304_).anInt1418 = Class22.anIntArray495[i_316_];
					}
					if (class44 != null) {
						if ((((Class44) class44).anInt722 & Class22.anIntArray494[i_316_]) != 0) {
							if (((Class44) class44).anInt722 == 16) {
								((Class50_Sub3) class50_sub3_304_).anInt1415 = 3;
								((Class50_Sub3) class50_sub3_304_).anInt1416 = Class22.anIntArray496[i_316_];
								((Class50_Sub3) class50_sub3_304_).anInt1417 = 3 - (((Class50_Sub3) class50_sub3_304_).anInt1416);
							} else if (((Class44) class44).anInt722 == 32) {
								((Class50_Sub3) class50_sub3_304_).anInt1415 = 6;
								((Class50_Sub3) class50_sub3_304_).anInt1416 = Class22.anIntArray497[i_316_];
								((Class50_Sub3) class50_sub3_304_).anInt1417 = 6 - (((Class50_Sub3) class50_sub3_304_).anInt1416);
							} else if (((Class44) class44).anInt722 == 64) {
								((Class50_Sub3) class50_sub3_304_).anInt1415 = 12;
								((Class50_Sub3) class50_sub3_304_).anInt1416 = Class22.anIntArray498[i_316_];
								((Class50_Sub3) class50_sub3_304_).anInt1417 = 12 - (((Class50_Sub3) class50_sub3_304_).anInt1416);
							} else {
								((Class50_Sub3) class50_sub3_304_).anInt1415 = 9;
								((Class50_Sub3) class50_sub3_304_).anInt1416 = Class22.anIntArray499[i_316_];
								((Class50_Sub3) class50_sub3_304_).anInt1417 = 9 - (((Class50_Sub3) class50_sub3_304_).anInt1416);
							}
						} else {
							((Class50_Sub3) class50_sub3_304_).anInt1415 = 0;
						}
						if ((((Class44) class44).anInt722 & i_317_) != 0
							&& !method288(i_307_, i, i_305_, ((Class44) class44).anInt722)) {
							class44.aClass50_Sub1_Sub4_724.method571(0, Class22.anInt473,
								Class22.anInt474, Class22.anInt475, Class22.anInt476,
								((Class44) class44).anInt720 - Class22.anInt470,
								((Class44) class44).anInt719 - Class22.anInt471,
								((Class44) class44).anInt721 - Class22.anInt472, class44.anInt726);
						}
						if ((((Class44) class44).anInt723 & i_317_) != 0
							&& !method288(i_307_, i, i_305_, ((Class44) class44).anInt723)) {
							class44.aClass50_Sub1_Sub4_725.method571(0, Class22.anInt473,
								Class22.anInt474, Class22.anInt475, Class22.anInt476,
								((Class44) class44).anInt720 - Class22.anInt470,
								((Class44) class44).anInt719 - Class22.anInt471,
								((Class44) class44).anInt721 - Class22.anInt472, class44.anInt726);
						}
					}
					if (class35 != null
						&& !method289(i_307_, i, i_305_, (class35.aClass50_Sub1_Sub4_608.anInt1475))) {
						if ((((Class35) class35).anInt606 & i_317_) != 0) {
							class35.aClass50_Sub1_Sub4_608.method571(((Class35) class35).anInt607,
								Class22.anInt473, Class22.anInt474, Class22.anInt475,
								Class22.anInt476, ((Class35) class35).anInt604 - Class22.anInt470,
								((Class35) class35).anInt603 - Class22.anInt471,
								((Class35) class35).anInt605 - Class22.anInt472, class35.anInt609);
						} else if ((((Class35) class35).anInt606 & 0x300) != 0) {
							int i_318_ = ((Class35) class35).anInt604 - Class22.anInt470;
							int i_319_ = ((Class35) class35).anInt603 - Class22.anInt471;
							int i_320_ = ((Class35) class35).anInt605 - Class22.anInt472;
							int i_321_ = ((Class35) class35).anInt607;
							int i_322_;
							if (i_321_ == 1 || i_321_ == 2) {
								i_322_ = -i_318_;
							} else {
								i_322_ = i_318_;
							}
							int i_323_;
							if (i_321_ == 2 || i_321_ == 3) {
								i_323_ = -i_320_;
							} else {
								i_323_ = i_320_;
							}
							if ((((Class35) class35).anInt606 & 0x100) != 0 && i_323_ < i_322_) {
								int i_324_ = i_318_ + Class22.anIntArray478[i_321_];
								int i_325_ = i_320_ + Class22.anIntArray479[i_321_];
								class35.aClass50_Sub1_Sub4_608.method571(i_321_ * 512 + 256,
									Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476, i_324_, i_319_, i_325_, class35.anInt609);
							}
							if ((((Class35) class35).anInt606 & 0x200) != 0 && i_323_ > i_322_) {
								int i_326_ = i_318_ + Class22.anIntArray480[i_321_];
								int i_327_ = i_320_ + Class22.anIntArray481[i_321_];
								class35.aClass50_Sub1_Sub4_608.method571(
									i_321_ * 512 + 1280 & 0x7ff, Class22.anInt473,
									Class22.anInt474, Class22.anInt475, Class22.anInt476, i_326_,
									i_319_, i_327_, class35.anInt609);
							}
						}
					}
					if (bool_315_) {
						Class28 class28 = ((Class50_Sub3) class50_sub3_304_).aClass28_1405;
						if (class28 != null) {
							class28.aClass50_Sub1_Sub4_570.method571(0, Class22.anInt473,
								Class22.anInt474, Class22.anInt475, Class22.anInt476,
								((Class28) class28).anInt568 - Class22.anInt470,
								((Class28) class28).anInt567 - Class22.anInt471,
								((Class28) class28).anInt569 - Class22.anInt472, class28.anInt571);
						}
						Class10 class10 = ((Class50_Sub3) class50_sub3_304_).aClass10_1406;
						if (class10 != null && ((Class10) class10).anInt180 == 0) {
							if (((Class10) class10).aClass50_Sub1_Sub4_177 != null) {
								((Class10) class10).aClass50_Sub1_Sub4_177.method571(0,
									Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476, ((Class10) class10).anInt174
										- Class22.anInt470, ((Class10) class10).anInt173
										- Class22.anInt471, ((Class10) class10).anInt175
										- Class22.anInt472, ((Class10) class10).anInt179);
							}
							if (((Class10) class10).aClass50_Sub1_Sub4_178 != null) {
								((Class10) class10).aClass50_Sub1_Sub4_178.method571(0,
									Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476, ((Class10) class10).anInt174
										- Class22.anInt470, ((Class10) class10).anInt173
										- Class22.anInt471, ((Class10) class10).anInt175
										- Class22.anInt472, ((Class10) class10).anInt179);
							}
							if (((Class10) class10).aClass50_Sub1_Sub4_176 != null) {
								((Class10) class10).aClass50_Sub1_Sub4_176.method571(0,
									Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476, ((Class10) class10).anInt174
										- Class22.anInt470, ((Class10) class10).anInt173
										- Class22.anInt471, ((Class10) class10).anInt175
										- Class22.anInt472, ((Class10) class10).anInt179);
							}
						}
					}
					int i_328_ = ((Class50_Sub3) class50_sub3_304_).anInt1410;
					if (i_328_ != 0) {
						if (i < Class22.anInt468 && (i_328_ & 0x4) != 0) {
							Class50_Sub3 class50_sub3_329_ = class50_sub3s[i + 1][i_305_];
							if (class50_sub3_329_ != null
								&& (((Class50_Sub3) class50_sub3_329_).aBoolean1413)) {
								Class22.aDeque_492.method155(class50_sub3_329_);
							}
						}
						if (i_305_ < Class22.anInt469 && (i_328_ & 0x2) != 0) {
							Class50_Sub3 class50_sub3_330_ = class50_sub3s[i][i_305_ + 1];
							if (class50_sub3_330_ != null
								&& (((Class50_Sub3) class50_sub3_330_).aBoolean1413)) {
								Class22.aDeque_492.method155(class50_sub3_330_);
							}
						}
						if (i > Class22.anInt468 && (i_328_ & 0x1) != 0) {
							Class50_Sub3 class50_sub3_331_ = class50_sub3s[i - 1][i_305_];
							if (class50_sub3_331_ != null
								&& (((Class50_Sub3) class50_sub3_331_).aBoolean1413)) {
								Class22.aDeque_492.method155(class50_sub3_331_);
							}
						}
						if (i_305_ > Class22.anInt469 && (i_328_ & 0x8) != 0) {
							Class50_Sub3 class50_sub3_332_ = class50_sub3s[i][i_305_ - 1];
							if (class50_sub3_332_ != null
								&& (((Class50_Sub3) class50_sub3_332_).aBoolean1413)) {
								Class22.aDeque_492.method155(class50_sub3_332_);
							}
						}
					}
				}
				if (((Class50_Sub3) class50_sub3_304_).anInt1415 != 0) {
					boolean bool_333_ = true;
					for (int i_334_ = 0; i_334_ < ((Class50_Sub3) class50_sub3_304_).anInt1407; i_334_++) {
						if ((((Class5) (((Class50_Sub3) class50_sub3_304_).aClass5Array1408[i_334_])).anInt124 != Class22.anInt463)
							&& (((((Class50_Sub3) class50_sub3_304_).anIntArray1409[i_334_]) & (((Class50_Sub3) class50_sub3_304_).anInt1415)) == (((Class50_Sub3) class50_sub3_304_).anInt1416))) {
							bool_333_ = false;
							break;
						}
					}
					if (bool_333_) {
						Class44 class44 = ((Class50_Sub3) class50_sub3_304_).aClass44_1403;
						if (!method288(i_307_, i, i_305_, ((Class44) class44).anInt722)) {
							class44.aClass50_Sub1_Sub4_724.method571(0, Class22.anInt473,
								Class22.anInt474, Class22.anInt475, Class22.anInt476,
								((Class44) class44).anInt720 - Class22.anInt470,
								((Class44) class44).anInt719 - Class22.anInt471,
								((Class44) class44).anInt721 - Class22.anInt472, class44.anInt726);
						}
						((Class50_Sub3) class50_sub3_304_).anInt1415 = 0;
					}
				}
				if (((Class50_Sub3) class50_sub3_304_).aBoolean1414) {
					try {
						int i_335_ = ((Class50_Sub3) class50_sub3_304_).anInt1407;
						((Class50_Sub3) class50_sub3_304_).aBoolean1414 = false;
						int i_336_ = 0;
						while_10_: for (int i_337_ = 0; i_337_ < i_335_; i_337_++) {
							Class5 class5 = (((Class50_Sub3) class50_sub3_304_).aClass5Array1408[i_337_]);
							if (((Class5) class5).anInt124 != Class22.anInt463) {
								for (int i_338_ = ((Class5) class5).anInt119; i_338_ <= ((Class5) class5).anInt120; i_338_++) {
									for (int i_339_ = ((Class5) class5).anInt121; i_339_ <= ((Class5) class5).anInt122; i_339_++) {
										Class50_Sub3 class50_sub3_340_ = class50_sub3s[i_338_][i_339_];
										if (((Class50_Sub3) class50_sub3_340_).aBoolean1412) {
											((Class50_Sub3) class50_sub3_304_).aBoolean1414 = true;
											continue while_10_;
										}
										if ((((Class50_Sub3) class50_sub3_340_).anInt1415) != 0) {
											int i_341_ = 0;
											if (i_338_ > ((Class5) class5).anInt119) {
												i_341_++;
											}
											if (i_338_ < ((Class5) class5).anInt120) {
												i_341_ += 4;
											}
											if (i_339_ > ((Class5) class5).anInt121) {
												i_341_ += 8;
											}
											if (i_339_ < ((Class5) class5).anInt122) {
												i_341_ += 2;
											}
											if ((i_341_ & (((Class50_Sub3) class50_sub3_340_).anInt1415)) == (((Class50_Sub3) class50_sub3_304_).anInt1417)) {
												((Class50_Sub3) class50_sub3_304_).aBoolean1414 = true;
												continue while_10_;
											}
										}
									}
								}
								Class22.aClass5Array477[i_336_++] = class5;
								int i_342_ = Class22.anInt468 - ((Class5) class5).anInt119;
								int i_343_ = ((Class5) class5).anInt120 - Class22.anInt468;
								if (i_343_ > i_342_) {
									i_342_ = i_343_;
								}
								int i_344_ = Class22.anInt469 - ((Class5) class5).anInt121;
								int i_345_ = ((Class5) class5).anInt122 - Class22.anInt469;
								if (i_345_ > i_344_) {
									((Class5) class5).anInt123 = i_342_ + i_345_;
								} else {
									((Class5) class5).anInt123 = i_342_ + i_344_;
								}
							}
						}
						while (i_336_ > 0) {
							int i_346_ = -50;
							int i_347_ = -1;
							for (int i_348_ = 0; i_348_ < i_336_; i_348_++) {
								Class5 class5 = Class22.aClass5Array477[i_348_];
								if (((Class5) class5).anInt124 != Class22.anInt463) {
									if (((Class5) class5).anInt123 > i_346_) {
										i_346_ = ((Class5) class5).anInt123;
										i_347_ = i_348_;
									} else if (((Class5) class5).anInt123 == i_346_) {
										int i_349_ = (((Class5) class5).anInt115 - Class22.anInt470);
										int i_350_ = (((Class5) class5).anInt116 - Class22.anInt472);
										int i_351_ = (((Class5) (Class22.aClass5Array477[i_347_])).anInt115 - Class22.anInt470);
										int i_352_ = (((Class5) (Class22.aClass5Array477[i_347_])).anInt116 - Class22.anInt472);
										if (i_349_ * i_349_ + i_350_ * i_350_ > (i_351_ * i_351_ + i_352_
											* i_352_)) {
											i_347_ = i_348_;
										}
									}
								}
							}
							if (i_347_ == -1) {
								break;
							}
							Class5 class5 = Class22.aClass5Array477[i_347_];
							((Class5) class5).anInt124 = Class22.anInt463;
							if (!method290(i_307_, ((Class5) class5).anInt119,
								((Class5) class5).anInt120, ((Class5) class5).anInt121,
								((Class5) class5).anInt122,
								(class5.aClass50_Sub1_Sub4_117.anInt1475))) {
								class5.aClass50_Sub1_Sub4_117.method571(class5.anInt118,
									Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476,
									((Class5) class5).anInt115 - Class22.anInt470,
									((Class5) class5).anInt114 - Class22.anInt471,
									((Class5) class5).anInt116 - Class22.anInt472, class5.anInt125);
							}
							for (int i_353_ = ((Class5) class5).anInt119; i_353_ <= ((Class5) class5).anInt120; i_353_++) {
								for (int i_354_ = ((Class5) class5).anInt121; i_354_ <= ((Class5) class5).anInt122; i_354_++) {
									Class50_Sub3 class50_sub3_355_ = class50_sub3s[i_353_][i_354_];
									if ((((Class50_Sub3) class50_sub3_355_).anInt1415) != 0) {
										Class22.aDeque_492.method155(class50_sub3_355_);
									} else if ((i_353_ != i || i_354_ != i_305_)
										&& (((Class50_Sub3) class50_sub3_355_).aBoolean1413)) {
										Class22.aDeque_492.method155(class50_sub3_355_);
									}
								}
							}
						}
						if (((Class50_Sub3) class50_sub3_304_).aBoolean1414) {
							continue;
						}
					} catch (Exception exception) {
						((Class50_Sub3) class50_sub3_304_).aBoolean1414 = false;
					}
				}
				if (((Class50_Sub3) class50_sub3_304_).aBoolean1413
					&& ((Class50_Sub3) class50_sub3_304_).anInt1415 == 0) {
					if (i <= Class22.anInt468 && i > Class22.anInt464) {
						Class50_Sub3 class50_sub3_356_ = class50_sub3s[i - 1][i_305_];
						if (class50_sub3_356_ != null
							&& ((Class50_Sub3) class50_sub3_356_).aBoolean1413) {
							continue;
						}
					}
					if (i >= Class22.anInt468 && i < Class22.anInt465 - 1) {
						Class50_Sub3 class50_sub3_357_ = class50_sub3s[i + 1][i_305_];
						if (class50_sub3_357_ != null
							&& ((Class50_Sub3) class50_sub3_357_).aBoolean1413) {
							continue;
						}
					}
					if (i_305_ <= Class22.anInt469 && i_305_ > Class22.anInt466) {
						Class50_Sub3 class50_sub3_358_ = class50_sub3s[i][i_305_ - 1];
						if (class50_sub3_358_ != null
							&& ((Class50_Sub3) class50_sub3_358_).aBoolean1413) {
							continue;
						}
					}
					if (i_305_ >= Class22.anInt469 && i_305_ < Class22.anInt467 - 1) {
						Class50_Sub3 class50_sub3_359_ = class50_sub3s[i][i_305_ + 1];
						if (class50_sub3_359_ != null
							&& ((Class50_Sub3) class50_sub3_359_).aBoolean1413) {
							continue;
						}
					}
					((Class50_Sub3) class50_sub3_304_).aBoolean1413 = false;
					Class22.anInt461--;
					Class10 class10 = ((Class50_Sub3) class50_sub3_304_).aClass10_1406;
					if (class10 != null && ((Class10) class10).anInt180 != 0) {
						if (((Class10) class10).aClass50_Sub1_Sub4_177 != null) {
							((Class10) class10).aClass50_Sub1_Sub4_177
								.method571(0, Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476, ((Class10) class10).anInt174
										- Class22.anInt470, (((Class10) class10).anInt173
										- Class22.anInt471 - ((Class10) class10).anInt180),
									((Class10) class10).anInt175 - Class22.anInt472,
									((Class10) class10).anInt179);
						}
						if (((Class10) class10).aClass50_Sub1_Sub4_178 != null) {
							((Class10) class10).aClass50_Sub1_Sub4_178
								.method571(0, Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476, ((Class10) class10).anInt174
										- Class22.anInt470, (((Class10) class10).anInt173
										- Class22.anInt471 - ((Class10) class10).anInt180),
									((Class10) class10).anInt175 - Class22.anInt472,
									((Class10) class10).anInt179);
						}
						if (((Class10) class10).aClass50_Sub1_Sub4_176 != null) {
							((Class10) class10).aClass50_Sub1_Sub4_176
								.method571(0, Class22.anInt473, Class22.anInt474, Class22.anInt475,
									Class22.anInt476, ((Class10) class10).anInt174
										- Class22.anInt470, (((Class10) class10).anInt173
										- Class22.anInt471 - ((Class10) class10).anInt180),
									((Class10) class10).anInt175 - Class22.anInt472,
									((Class10) class10).anInt179);
						}
					}
					if (((Class50_Sub3) class50_sub3_304_).anInt1418 != 0) {
						Class35 class35 = ((Class50_Sub3) class50_sub3_304_).aClass35_1404;
						if (class35 != null
							&& !method289(i_307_, i, i_305_,
								(class35.aClass50_Sub1_Sub4_608.anInt1475))) {
							if ((((Class35) class35).anInt606 & (((Class50_Sub3) class50_sub3_304_).anInt1418)) != 0) {
								class35.aClass50_Sub1_Sub4_608.method571(
									((Class35) class35).anInt607, Class22.anInt473,
									Class22.anInt474, Class22.anInt475, Class22.anInt476,
									((Class35) class35).anInt604 - Class22.anInt470,
									((Class35) class35).anInt603 - Class22.anInt471,
									((Class35) class35).anInt605 - Class22.anInt472,
									class35.anInt609);
							} else if ((((Class35) class35).anInt606 & 0x300) != 0) {
								int i_360_ = ((Class35) class35).anInt604 - Class22.anInt470;
								int i_361_ = ((Class35) class35).anInt603 - Class22.anInt471;
								int i_362_ = ((Class35) class35).anInt605 - Class22.anInt472;
								int i_363_ = ((Class35) class35).anInt607;
								int i_364_;
								if (i_363_ == 1 || i_363_ == 2) {
									i_364_ = -i_360_;
								} else {
									i_364_ = i_360_;
								}
								int i_365_;
								if (i_363_ == 2 || i_363_ == 3) {
									i_365_ = -i_362_;
								} else {
									i_365_ = i_362_;
								}
								if ((((Class35) class35).anInt606 & 0x100) != 0 && i_365_ >= i_364_) {
									int i_366_ = i_360_ + Class22.anIntArray478[i_363_];
									int i_367_ = i_362_ + Class22.anIntArray479[i_363_];
									class35.aClass50_Sub1_Sub4_608.method571(i_363_ * 512 + 256,
										Class22.anInt473, Class22.anInt474, Class22.anInt475,
										Class22.anInt476, i_366_, i_361_, i_367_, class35.anInt609);
								}
								if ((((Class35) class35).anInt606 & 0x200) != 0 && i_365_ <= i_364_) {
									int i_368_ = i_360_ + Class22.anIntArray480[i_363_];
									int i_369_ = i_362_ + Class22.anIntArray481[i_363_];
									class35.aClass50_Sub1_Sub4_608.method571(
										i_363_ * 512 + 1280 & 0x7ff, Class22.anInt473,
										Class22.anInt474, Class22.anInt475, Class22.anInt476,
										i_368_, i_361_, i_369_, class35.anInt609);
								}
							}
						}
						Class44 class44 = ((Class50_Sub3) class50_sub3_304_).aClass44_1403;
						if (class44 != null) {
							if ((((Class44) class44).anInt723 & (((Class50_Sub3) class50_sub3_304_).anInt1418)) != 0
								&& !method288(i_307_, i, i_305_, ((Class44) class44).anInt723)) {
								class44.aClass50_Sub1_Sub4_725.method571(0, Class22.anInt473,
									Class22.anInt474, Class22.anInt475, Class22.anInt476,
									((Class44) class44).anInt720 - Class22.anInt470,
									((Class44) class44).anInt719 - Class22.anInt471,
									((Class44) class44).anInt721 - Class22.anInt472,
									class44.anInt726);
							}
							if ((((Class44) class44).anInt722 & (((Class50_Sub3) class50_sub3_304_).anInt1418)) != 0
								&& !method288(i_307_, i, i_305_, ((Class44) class44).anInt722)) {
								class44.aClass50_Sub1_Sub4_724.method571(0, Class22.anInt473,
									Class22.anInt474, Class22.anInt475, Class22.anInt476,
									((Class44) class44).anInt720 - Class22.anInt470,
									((Class44) class44).anInt719 - Class22.anInt471,
									((Class44) class44).anInt721 - Class22.anInt472,
									class44.anInt726);
							}
						}
					}
					if (i_306_ < ((Class22) this).anInt452 - 1) {
						Class50_Sub3 class50_sub3_370_ = (((Class22) this).aClass50_Sub3ArrayArrayArray456[i_306_ + 1][i][i_305_]);
						if (class50_sub3_370_ != null
							&& ((Class50_Sub3) class50_sub3_370_).aBoolean1413) {
							Class22.aDeque_492.method155(class50_sub3_370_);
						}
					}
					if (i < Class22.anInt468) {
						Class50_Sub3 class50_sub3_371_ = class50_sub3s[i + 1][i_305_];
						if (class50_sub3_371_ != null
							&& ((Class50_Sub3) class50_sub3_371_).aBoolean1413) {
							Class22.aDeque_492.method155(class50_sub3_371_);
						}
					}
					if (i_305_ < Class22.anInt469) {
						Class50_Sub3 class50_sub3_372_ = class50_sub3s[i][i_305_ + 1];
						if (class50_sub3_372_ != null
							&& ((Class50_Sub3) class50_sub3_372_).aBoolean1413) {
							Class22.aDeque_492.method155(class50_sub3_372_);
						}
					}
					if (i > Class22.anInt468) {
						Class50_Sub3 class50_sub3_373_ = class50_sub3s[i - 1][i_305_];
						if (class50_sub3_373_ != null
							&& ((Class50_Sub3) class50_sub3_373_).aBoolean1413) {
							Class22.aDeque_492.method155(class50_sub3_373_);
						}
					}
					if (i_305_ > Class22.anInt469) {
						Class50_Sub3 class50_sub3_374_ = class50_sub3s[i][i_305_ - 1];
						if (class50_sub3_374_ != null
							&& ((Class50_Sub3) class50_sub3_374_).aBoolean1413) {
							Class22.aDeque_492.method155(class50_sub3_374_);
						}
					}
				}
			}
		}
	}

	public void method282(Class3 class3, int i, int i_375_, int i_376_, int i_377_, int i_378_,
		int i_379_, int i_380_) {
		int i_382_;
		int i_381_ = i_382_ = (i_379_ << 7) - Class22.anInt470;
		int i_384_;
		int i_383_ = i_384_ = (i_380_ << 7) - Class22.anInt472;
		int i_386_;
		int i_385_ = i_386_ = i_381_ + 128;
		int i_388_;
		int i_387_ = i_388_ = i_383_ + 128;
		int i_389_ = (((Class22) this).anIntArrayArrayArray455[i][i_379_][i_380_] - Class22.anInt471);
		int i_390_ = (((Class22) this).anIntArrayArrayArray455[i][i_379_ + 1][i_380_] - Class22.anInt471);
		int i_391_ = ((((Class22) this).anIntArrayArrayArray455[i][i_379_ + 1][i_380_ + 1]) - Class22.anInt471);
		int i_392_ = (((Class22) this).anIntArrayArrayArray455[i][i_379_][i_380_ + 1] - Class22.anInt471);
		int i_393_ = i_383_ * i_377_ + i_381_ * i_378_ >> 16;
		i_383_ = i_383_ * i_378_ - i_381_ * i_377_ >> 16;
		i_381_ = i_393_;
		i_393_ = i_389_ * i_376_ - i_383_ * i_375_ >> 16;
		i_383_ = i_389_ * i_375_ + i_383_ * i_376_ >> 16;
		i_389_ = i_393_;
		if (i_383_ >= 50) {
			i_393_ = i_384_ * i_377_ + i_385_ * i_378_ >> 16;
			i_384_ = i_384_ * i_378_ - i_385_ * i_377_ >> 16;
			i_385_ = i_393_;
			i_393_ = i_390_ * i_376_ - i_384_ * i_375_ >> 16;
			i_384_ = i_390_ * i_375_ + i_384_ * i_376_ >> 16;
			i_390_ = i_393_;
			if (i_384_ >= 50) {
				i_393_ = i_387_ * i_377_ + i_386_ * i_378_ >> 16;
				i_387_ = i_387_ * i_378_ - i_386_ * i_377_ >> 16;
				i_386_ = i_393_;
				i_393_ = i_391_ * i_376_ - i_387_ * i_375_ >> 16;
				i_387_ = i_391_ * i_375_ + i_387_ * i_376_ >> 16;
				i_391_ = i_393_;
				if (i_387_ >= 50) {
					i_393_ = i_388_ * i_377_ + i_382_ * i_378_ >> 16;
					i_388_ = i_388_ * i_378_ - i_382_ * i_377_ >> 16;
					i_382_ = i_393_;
					i_393_ = i_392_ * i_376_ - i_388_ * i_375_ >> 16;
					i_388_ = i_392_ * i_375_ + i_388_ * i_376_ >> 16;
					i_392_ = i_393_;
					if (i_388_ >= 50) {
						int i_394_ = (Renderer3D.anInt1532 + (i_381_ << 9) / i_383_);
						int i_395_ = (Renderer3D.anInt1533 + (i_389_ << 9) / i_383_);
						int i_396_ = (Renderer3D.anInt1532 + (i_385_ << 9) / i_384_);
						int i_397_ = (Renderer3D.anInt1533 + (i_390_ << 9) / i_384_);
						int i_398_ = (Renderer3D.anInt1532 + (i_386_ << 9) / i_387_);
						int i_399_ = (Renderer3D.anInt1533 + (i_391_ << 9) / i_387_);
						int i_400_ = (Renderer3D.anInt1532 + (i_382_ << 9) / i_388_);
						int i_401_ = (Renderer3D.anInt1533 + (i_392_ << 9) / i_388_);
						Renderer3D.anInt1531 = 0;
						if (((i_398_ - i_400_) * (i_397_ - i_401_) - (i_399_ - i_401_)
							* (i_396_ - i_400_)) > 0) {
							Renderer3D.aBoolean1528 = false;
							if (i_398_ < 0 || i_400_ < 0 || i_396_ < 0
								|| i_398_ > Renderer2D.endX
								|| i_400_ > Renderer2D.endX
								|| i_396_ > Renderer2D.endX) {
								Renderer3D.aBoolean1528 = true;
							}
							if (Class22.aBoolean482
								&& method285(Class22.anInt483, Class22.anInt484, i_399_, i_401_,
									i_397_, i_398_, i_400_, i_396_)) {
								Class22.anInt485 = i_379_;
								Class22.anInt486 = i_380_;
							}
							if (((Class3) class3).anInt99 == -1) {
								if (((Class3) class3).anInt97 != 12345678) {
									Renderer3D.method514(i_399_, i_401_, i_397_,
										i_398_, i_400_, i_396_, ((Class3) class3).anInt97,
										((Class3) class3).anInt98, ((Class3) class3).anInt96);
								}
							} else if (!Class22.aBoolean451) {
								if (((Class3) class3).aBoolean100) {
									Renderer3D.method518(i_399_, i_401_, i_397_,
										i_398_, i_400_, i_396_, ((Class3) class3).anInt97,
										((Class3) class3).anInt98, ((Class3) class3).anInt96,
										i_381_, i_385_, i_382_, i_389_, i_390_, i_392_, i_383_,
										i_384_, i_388_, ((Class3) class3).anInt99);
								} else {
									Renderer3D.method518(i_399_, i_401_, i_397_,
										i_398_, i_400_, i_396_, ((Class3) class3).anInt97,
										((Class3) class3).anInt98, ((Class3) class3).anInt96,
										i_386_, i_382_, i_385_, i_391_, i_392_, i_390_, i_387_,
										i_388_, i_384_, ((Class3) class3).anInt99);
								}
							} else {
								int i_402_ = Class22.anIntArray500[((Class3) class3).anInt99];
								Renderer3D.method514(i_399_, i_401_, i_397_, i_398_,
									i_400_, i_396_,
									method284(((Class3) class3).anInt97, i_402_, 0),
									method284(((Class3) class3).anInt98, i_402_, 0),
									method284(((Class3) class3).anInt96, i_402_, 0));
							}
						}
						if (((i_394_ - i_396_) * (i_401_ - i_397_) - (i_395_ - i_397_)
							* (i_400_ - i_396_)) > 0) {
							Renderer3D.aBoolean1528 = false;
							if (i_394_ < 0 || i_396_ < 0 || i_400_ < 0
								|| i_394_ > Renderer2D.endX
								|| i_396_ > Renderer2D.endX
								|| i_400_ > Renderer2D.endX) {
								Renderer3D.aBoolean1528 = true;
							}
							if (Class22.aBoolean482
								&& method285(Class22.anInt483, Class22.anInt484, i_395_, i_397_,
									i_401_, i_394_, i_396_, i_400_)) {
								Class22.anInt485 = i_379_;
								Class22.anInt486 = i_380_;
							}
							if (((Class3) class3).anInt99 == -1) {
								if (((Class3) class3).anInt95 != 12345678) {
									Renderer3D.method514(i_395_, i_397_, i_401_,
										i_394_, i_396_, i_400_, ((Class3) class3).anInt95,
										((Class3) class3).anInt96, ((Class3) class3).anInt98);
								}
							} else if (!Class22.aBoolean451) {
								Renderer3D.method518(i_395_, i_397_, i_401_, i_394_,
									i_396_, i_400_, ((Class3) class3).anInt95,
									((Class3) class3).anInt96, ((Class3) class3).anInt98, i_381_,
									i_385_, i_382_, i_389_, i_390_, i_392_, i_383_, i_384_, i_388_,
									((Class3) class3).anInt99);
							} else {
								int i_403_ = Class22.anIntArray500[((Class3) class3).anInt99];
								Renderer3D.method514(i_395_, i_397_, i_401_, i_394_,
									i_396_, i_400_,
									method284(((Class3) class3).anInt95, i_403_, 0),
									method284(((Class3) class3).anInt96, i_403_, 0),
									method284(((Class3) class3).anInt98, i_403_, 0));
							}
						}
					}
				}
			}
		}
	}

	public void method283(int i, int i_404_, Class20 class20, int i_405_, int i_406_, int i_407_,
		int i_408_, byte i_409_) {
		int i_410_ = ((Class20) class20).anIntArray403.length;
		for (int i_411_ = 0; i_411_ < i_410_; i_411_++) {
			int i_412_ = ((Class20) class20).anIntArray403[i_411_] - Class22.anInt470;
			int i_413_ = ((Class20) class20).anIntArray404[i_411_] - Class22.anInt471;
			int i_414_ = ((Class20) class20).anIntArray405[i_411_] - Class22.anInt472;
			int i_415_ = i_414_ * i_408_ + i_412_ * i_404_ >> 16;
			i_414_ = i_414_ * i_404_ - i_412_ * i_408_ >> 16;
			i_412_ = i_415_;
			i_415_ = i_413_ * i - i_414_ * i_405_ >> 16;
			i_414_ = i_413_ * i_405_ + i_414_ * i >> 16;
			i_413_ = i_415_;
			if (i_414_ < 50) {
				return;
			}
			if (((Class20) class20).anIntArray412 != null) {
				Class20.anIntArray420[i_411_] = i_412_;
				Class20.anIntArray421[i_411_] = i_413_;
				Class20.anIntArray422[i_411_] = i_414_;
			}
			Class20.anIntArray418[i_411_] = Renderer3D.anInt1532 + (i_412_ << 9)
				/ i_414_;
			Class20.anIntArray419[i_411_] = Renderer3D.anInt1533 + (i_413_ << 9)
				/ i_414_;
		}
		Renderer3D.anInt1531 = 0;
		i_410_ = ((Class20) class20).anIntArray409.length;
		if (i_409_ == 3) {
			for (int i_416_ = 0; i_416_ < i_410_; i_416_++) {
				int i_417_ = ((Class20) class20).anIntArray409[i_416_];
				int i_418_ = ((Class20) class20).anIntArray410[i_416_];
				int i_419_ = ((Class20) class20).anIntArray411[i_416_];
				int i_420_ = Class20.anIntArray418[i_417_];
				int i_421_ = Class20.anIntArray418[i_418_];
				int i_422_ = Class20.anIntArray418[i_419_];
				int i_423_ = Class20.anIntArray419[i_417_];
				int i_424_ = Class20.anIntArray419[i_418_];
				int i_425_ = Class20.anIntArray419[i_419_];
				if (((i_420_ - i_421_) * (i_425_ - i_424_) - (i_423_ - i_424_) * (i_422_ - i_421_)) > 0) {
					Renderer3D.aBoolean1528 = false;
					if (i_420_ < 0 || i_421_ < 0 || i_422_ < 0
						|| i_420_ > Renderer2D.endX
						|| i_421_ > Renderer2D.endX
						|| i_422_ > Renderer2D.endX) {
						Renderer3D.aBoolean1528 = true;
					}
					if (Class22.aBoolean482
						&& method285(Class22.anInt483, Class22.anInt484, i_423_, i_424_, i_425_,
							i_420_, i_421_, i_422_)) {
						Class22.anInt485 = i_407_;
						Class22.anInt486 = i_406_;
					}
					if (((Class20) class20).anIntArray412 == null
						|| ((Class20) class20).anIntArray412[i_416_] == -1) {
						if (((Class20) class20).anIntArray406[i_416_] != 12345678) {
							Renderer3D.method514(i_423_, i_424_, i_425_, i_420_,
								i_421_, i_422_, ((Class20) class20).anIntArray406[i_416_],
								((Class20) class20).anIntArray407[i_416_],
								((Class20) class20).anIntArray408[i_416_]);
						}
					} else if (!Class22.aBoolean451) {
						if (((Class20) class20).aBoolean413) {
							Renderer3D
								.method518(i_423_, i_424_, i_425_, i_420_, i_421_, i_422_,
									((Class20) class20).anIntArray406[i_416_],
									((Class20) class20).anIntArray407[i_416_],
									((Class20) class20).anIntArray408[i_416_],
									Class20.anIntArray420[0], Class20.anIntArray420[1],
									Class20.anIntArray420[3], Class20.anIntArray421[0],
									Class20.anIntArray421[1], Class20.anIntArray421[3],
									Class20.anIntArray422[0], Class20.anIntArray422[1],
									Class20.anIntArray422[3],
									((Class20) class20).anIntArray412[i_416_]);
						} else {
							Renderer3D.method518(i_423_, i_424_, i_425_, i_420_,
								i_421_, i_422_, ((Class20) class20).anIntArray406[i_416_],
								((Class20) class20).anIntArray407[i_416_],
								((Class20) class20).anIntArray408[i_416_],
								Class20.anIntArray420[i_417_], Class20.anIntArray420[i_418_],
								Class20.anIntArray420[i_419_], Class20.anIntArray421[i_417_],
								Class20.anIntArray421[i_418_], Class20.anIntArray421[i_419_],
								Class20.anIntArray422[i_417_], Class20.anIntArray422[i_418_],
								Class20.anIntArray422[i_419_],
								((Class20) class20).anIntArray412[i_416_]);
						}
					} else {
						int i_426_ = (Class22.anIntArray500[((Class20) class20).anIntArray412[i_416_]]);
						Renderer3D.method514(i_423_, i_424_, i_425_, i_420_, i_421_,
							i_422_,
							method284((((Class20) class20).anIntArray406[i_416_]), i_426_, 0),
							method284((((Class20) class20).anIntArray407[i_416_]), i_426_, 0),
							method284((((Class20) class20).anIntArray408[i_416_]), i_426_, 0));
					}
				}
			}
		}
	}

	public int method284(int i, int i_427_, int i_428_) {
		i = 127 - i;
		if (i_428_ != 0) {
			return anInt443;
		}
		i = i * (i_427_ & 0x7f) / 160;
		if (i < 2) {
			i = 2;
		} else if (i > 126) {
			i = 126;
		}
		return (i_427_ & 0xff80) + i;
	}

	public boolean method285(int i, int i_429_, int i_430_, int i_431_, int i_432_, int i_433_,
		int i_434_, int i_435_) {
		if (i_429_ < i_430_ && i_429_ < i_431_ && i_429_ < i_432_) {
			return false;
		}
		if (i_429_ > i_430_ && i_429_ > i_431_ && i_429_ > i_432_) {
			return false;
		}
		if (i < i_433_ && i < i_434_ && i < i_435_) {
			return false;
		}
		if (i > i_433_ && i > i_434_ && i > i_435_) {
			return false;
		}
		int i_436_ = ((i_429_ - i_430_) * (i_434_ - i_433_) - (i - i_433_) * (i_431_ - i_430_));
		int i_437_ = ((i_429_ - i_432_) * (i_433_ - i_435_) - (i - i_435_) * (i_430_ - i_432_));
		int i_438_ = ((i_429_ - i_431_) * (i_435_ - i_434_) - (i - i_434_) * (i_432_ - i_431_));
		if (i_436_ * i_438_ > 0 && i_438_ * i_437_ > 0) {
			return true;
		}
		return false;
	}

	private void method286(int i) {
		int i_439_ = Class22.anIntArray488[Class22.anInt462];
		Class39[] class39s = Class22.aClass39ArrayArray489[Class22.anInt462];
		if (i < 2 || i > 2) {
			aBoolean441 = !aBoolean441;
		}
		Class22.anInt490 = 0;
		for (int i_440_ = 0; i_440_ < i_439_; i_440_++) {
			Class39 class39 = class39s[i_440_];
			if (((Class39) class39).anInt679 == 1) {
				int i_441_ = ((Class39) class39).anInt675 - Class22.anInt468 + 25;
				if (i_441_ >= 0 && i_441_ <= 50) {
					int i_442_ = ((Class39) class39).anInt677 - Class22.anInt469 + 25;
					if (i_442_ < 0) {
						i_442_ = 0;
					}
					int i_443_ = ((Class39) class39).anInt678 - Class22.anInt469 + 25;
					if (i_443_ > 50) {
						i_443_ = 50;
					}
					boolean bool = false;
					while (i_442_ <= i_443_) {
						if (Class22.aBooleanArrayArray507[i_441_][i_442_++]) {
							bool = true;
							break;
						}
					}
					if (bool) {
						int i_444_ = Class22.anInt470 - ((Class39) class39).anInt680;
						if (i_444_ > 32) {
							((Class39) class39).anInt686 = 1;
						} else {
							if (i_444_ >= -32) {
								continue;
							}
							((Class39) class39).anInt686 = 2;
							i_444_ = -i_444_;
						}
						((Class39) class39).anInt689 = ((((Class39) class39).anInt682
							- Class22.anInt472 << 8) / i_444_);
						((Class39) class39).anInt690 = ((((Class39) class39).anInt683
							- Class22.anInt472 << 8) / i_444_);
						((Class39) class39).anInt691 = ((((Class39) class39).anInt684
							- Class22.anInt471 << 8) / i_444_);
						((Class39) class39).anInt692 = ((((Class39) class39).anInt685
							- Class22.anInt471 << 8) / i_444_);
						Class22.aClass39Array491[Class22.anInt490++] = class39;
					}
				}
			} else if (((Class39) class39).anInt679 == 2) {
				int i_445_ = ((Class39) class39).anInt677 - Class22.anInt469 + 25;
				if (i_445_ >= 0 && i_445_ <= 50) {
					int i_446_ = ((Class39) class39).anInt675 - Class22.anInt468 + 25;
					if (i_446_ < 0) {
						i_446_ = 0;
					}
					int i_447_ = ((Class39) class39).anInt676 - Class22.anInt468 + 25;
					if (i_447_ > 50) {
						i_447_ = 50;
					}
					boolean bool = false;
					while (i_446_ <= i_447_) {
						if (Class22.aBooleanArrayArray507[i_446_++][i_445_]) {
							bool = true;
							break;
						}
					}
					if (bool) {
						int i_448_ = Class22.anInt472 - ((Class39) class39).anInt682;
						if (i_448_ > 32) {
							((Class39) class39).anInt686 = 3;
						} else {
							if (i_448_ >= -32) {
								continue;
							}
							((Class39) class39).anInt686 = 4;
							i_448_ = -i_448_;
						}
						((Class39) class39).anInt687 = ((((Class39) class39).anInt680
							- Class22.anInt470 << 8) / i_448_);
						((Class39) class39).anInt688 = ((((Class39) class39).anInt681
							- Class22.anInt470 << 8) / i_448_);
						((Class39) class39).anInt691 = ((((Class39) class39).anInt684
							- Class22.anInt471 << 8) / i_448_);
						((Class39) class39).anInt692 = ((((Class39) class39).anInt685
							- Class22.anInt471 << 8) / i_448_);
						Class22.aClass39Array491[Class22.anInt490++] = class39;
					}
				}
			} else if (((Class39) class39).anInt679 == 4) {
				int i_449_ = ((Class39) class39).anInt684 - Class22.anInt471;
				if (i_449_ > 128) {
					int i_450_ = ((Class39) class39).anInt677 - Class22.anInt469 + 25;
					if (i_450_ < 0) {
						i_450_ = 0;
					}
					int i_451_ = ((Class39) class39).anInt678 - Class22.anInt469 + 25;
					if (i_451_ > 50) {
						i_451_ = 50;
					}
					if (i_450_ <= i_451_) {
						int i_452_ = ((Class39) class39).anInt675 - Class22.anInt468 + 25;
						if (i_452_ < 0) {
							i_452_ = 0;
						}
						int i_453_ = ((Class39) class39).anInt676 - Class22.anInt468 + 25;
						if (i_453_ > 50) {
							i_453_ = 50;
						}
						boolean bool = false;
						while_11_: for (int i_454_ = i_452_; i_454_ <= i_453_; i_454_++) {
							for (int i_455_ = i_450_; i_455_ <= i_451_; i_455_++) {
								if (Class22.aBooleanArrayArray507[i_454_][i_455_]) {
									bool = true;
									break while_11_;
								}
							}
						}
						if (bool) {
							((Class39) class39).anInt686 = 5;
							((Class39) class39).anInt687 = (((Class39) class39).anInt680
								- Class22.anInt470 << 8)
								/ i_449_;
							((Class39) class39).anInt688 = (((Class39) class39).anInt681
								- Class22.anInt470 << 8)
								/ i_449_;
							((Class39) class39).anInt689 = (((Class39) class39).anInt682
								- Class22.anInt472 << 8)
								/ i_449_;
							((Class39) class39).anInt690 = (((Class39) class39).anInt683
								- Class22.anInt472 << 8)
								/ i_449_;
							Class22.aClass39Array491[Class22.anInt490++] = class39;
						}
					}
				}
			}
		}
	}

	private boolean method287(int i, int i_456_, int i_457_) {
		int i_458_ = ((Class22) this).anIntArrayArrayArray460[i][i_456_][i_457_];
		if (i_458_ == -Class22.anInt463) {
			return false;
		}
		if (i_458_ == Class22.anInt463) {
			return true;
		}
		int i_459_ = i_456_ << 7;
		int i_460_ = i_457_ << 7;
		if (method291(i_459_ + 1, (((Class22) this).anIntArrayArrayArray455[i][i_456_][i_457_]),
			i_460_ + 1)
			&& method291(i_459_ + 128 - 1,
				(((Class22) this).anIntArrayArrayArray455[i][i_456_ + 1][i_457_]), i_460_ + 1)
			&& method291(i_459_ + 128 - 1,
				(((Class22) this).anIntArrayArrayArray455[i][i_456_ + 1][i_457_ + 1]),
				i_460_ + 128 - 1)
			&& method291(i_459_ + 1,
				(((Class22) this).anIntArrayArrayArray455[i][i_456_][i_457_ + 1]), i_460_ + 128 - 1)) {
			((Class22) this).anIntArrayArrayArray460[i][i_456_][i_457_] = Class22.anInt463;
			return true;
		}
		((Class22) this).anIntArrayArrayArray460[i][i_456_][i_457_] = -Class22.anInt463;
		return false;
	}

	private boolean method288(int i, int i_461_, int i_462_, int i_463_) {
		if (!method287(i, i_461_, i_462_)) {
			return false;
		}
		int i_464_ = i_461_ << 7;
		int i_465_ = i_462_ << 7;
		int i_466_ = ((Class22) this).anIntArrayArrayArray455[i][i_461_][i_462_] - 1;
		int i_467_ = i_466_ - 120;
		int i_468_ = i_466_ - 230;
		int i_469_ = i_466_ - 238;
		if (i_463_ < 16) {
			if (i_463_ == 1) {
				if (i_464_ > Class22.anInt470) {
					if (!method291(i_464_, i_466_, i_465_)) {
						return false;
					}
					if (!method291(i_464_, i_466_, i_465_ + 128)) {
						return false;
					}
				}
				if (i > 0) {
					if (!method291(i_464_, i_467_, i_465_)) {
						return false;
					}
					if (!method291(i_464_, i_467_, i_465_ + 128)) {
						return false;
					}
				}
				if (!method291(i_464_, i_468_, i_465_)) {
					return false;
				}
				if (!method291(i_464_, i_468_, i_465_ + 128)) {
					return false;
				}
				return true;
			}
			if (i_463_ == 2) {
				if (i_465_ < Class22.anInt472) {
					if (!method291(i_464_, i_466_, i_465_ + 128)) {
						return false;
					}
					if (!method291(i_464_ + 128, i_466_, i_465_ + 128)) {
						return false;
					}
				}
				if (i > 0) {
					if (!method291(i_464_, i_467_, i_465_ + 128)) {
						return false;
					}
					if (!method291(i_464_ + 128, i_467_, i_465_ + 128)) {
						return false;
					}
				}
				if (!method291(i_464_, i_468_, i_465_ + 128)) {
					return false;
				}
				if (!method291(i_464_ + 128, i_468_, i_465_ + 128)) {
					return false;
				}
				return true;
			}
			if (i_463_ == 4) {
				if (i_464_ < Class22.anInt470) {
					if (!method291(i_464_ + 128, i_466_, i_465_)) {
						return false;
					}
					if (!method291(i_464_ + 128, i_466_, i_465_ + 128)) {
						return false;
					}
				}
				if (i > 0) {
					if (!method291(i_464_ + 128, i_467_, i_465_)) {
						return false;
					}
					if (!method291(i_464_ + 128, i_467_, i_465_ + 128)) {
						return false;
					}
				}
				if (!method291(i_464_ + 128, i_468_, i_465_)) {
					return false;
				}
				if (!method291(i_464_ + 128, i_468_, i_465_ + 128)) {
					return false;
				}
				return true;
			}
			if (i_463_ == 8) {
				if (i_465_ > Class22.anInt472) {
					if (!method291(i_464_, i_466_, i_465_)) {
						return false;
					}
					if (!method291(i_464_ + 128, i_466_, i_465_)) {
						return false;
					}
				}
				if (i > 0) {
					if (!method291(i_464_, i_467_, i_465_)) {
						return false;
					}
					if (!method291(i_464_ + 128, i_467_, i_465_)) {
						return false;
					}
				}
				if (!method291(i_464_, i_468_, i_465_)) {
					return false;
				}
				if (!method291(i_464_ + 128, i_468_, i_465_)) {
					return false;
				}
				return true;
			}
		}
		if (!method291(i_464_ + 64, i_469_, i_465_ + 64)) {
			return false;
		}
		if (i_463_ == 16) {
			if (!method291(i_464_, i_468_, i_465_ + 128)) {
				return false;
			}
			return true;
		}
		if (i_463_ == 32) {
			if (!method291(i_464_ + 128, i_468_, i_465_ + 128)) {
				return false;
			}
			return true;
		}
		if (i_463_ == 64) {
			if (!method291(i_464_ + 128, i_468_, i_465_)) {
				return false;
			}
			return true;
		}
		if (i_463_ == 128) {
			if (!method291(i_464_, i_468_, i_465_)) {
				return false;
			}
			return true;
		}
		System.out.println("Warning unsupported wall type");
		return true;
	}

	private boolean method289(int i, int i_470_, int i_471_, int i_472_) {
		if (!method287(i, i_470_, i_471_)) {
			return false;
		}
		int i_473_ = i_470_ << 7;
		int i_474_ = i_471_ << 7;
		if (method291(i_473_ + 1, (((Class22) this).anIntArrayArrayArray455[i][i_470_][i_471_])
			- i_472_, i_474_ + 1)
			&& method291(i_473_ + 128 - 1,
				(((Class22) this).anIntArrayArrayArray455[i][i_470_ + 1][i_471_]) - i_472_,
				i_474_ + 1)
			&& method291(i_473_ + 128 - 1,
				(((Class22) this).anIntArrayArrayArray455[i][i_470_ + 1][i_471_ + 1]) - i_472_,
				i_474_ + 128 - 1)
			&& method291(i_473_ + 1,
				(((Class22) this).anIntArrayArrayArray455[i][i_470_][i_471_ + 1]) - i_472_,
				i_474_ + 128 - 1)) {
			return true;
		}
		return false;
	}

	private boolean method290(int i, int i_475_, int i_476_, int i_477_, int i_478_, int i_479_) {
		if (i_475_ == i_476_ && i_477_ == i_478_) {
			if (!method287(i, i_475_, i_477_)) {
				return false;
			}
			int i_480_ = i_475_ << 7;
			int i_481_ = i_477_ << 7;
			if (method291(i_480_ + 1, (((Class22) this).anIntArrayArrayArray455[i][i_475_][i_477_])
				- i_479_, i_481_ + 1)
				&& method291(i_480_ + 128 - 1,
					(((Class22) this).anIntArrayArrayArray455[i][i_475_ + 1][i_477_]) - i_479_,
					i_481_ + 1)
				&& method291(i_480_ + 128 - 1,
					(((Class22) this).anIntArrayArrayArray455[i][i_475_ + 1][i_477_ + 1]) - i_479_,
					i_481_ + 128 - 1)
				&& method291(i_480_ + 1,
					(((Class22) this).anIntArrayArrayArray455[i][i_475_][i_477_ + 1]) - i_479_,
					i_481_ + 128 - 1)) {
				return true;
			}
			return false;
		}
		for (int i_482_ = i_475_; i_482_ <= i_476_; i_482_++) {
			for (int i_483_ = i_477_; i_483_ <= i_478_; i_483_++) {
				if (((Class22) this).anIntArrayArrayArray460[i][i_482_][i_483_] == -Class22.anInt463) {
					return false;
				}
			}
		}
		int i_484_ = (i_475_ << 7) + 1;
		int i_485_ = (i_477_ << 7) + 2;
		int i_486_ = (((Class22) this).anIntArrayArrayArray455[i][i_475_][i_477_] - i_479_);
		if (!method291(i_484_, i_486_, i_485_)) {
			return false;
		}
		int i_487_ = (i_476_ << 7) - 1;
		if (!method291(i_487_, i_486_, i_485_)) {
			return false;
		}
		int i_488_ = (i_478_ << 7) - 1;
		if (!method291(i_484_, i_486_, i_488_)) {
			return false;
		}
		if (!method291(i_487_, i_486_, i_488_)) {
			return false;
		}
		return true;
	}

	private boolean method291(int i, int i_489_, int i_490_) {
		for (int i_491_ = 0; i_491_ < Class22.anInt490; i_491_++) {
			Class39 class39 = Class22.aClass39Array491[i_491_];
			if (((Class39) class39).anInt686 == 1) {
				int i_492_ = ((Class39) class39).anInt680 - i;
				if (i_492_ > 0) {
					int i_493_ = (((Class39) class39).anInt682 + (((Class39) class39).anInt689
						* i_492_ >> 8));
					int i_494_ = (((Class39) class39).anInt683 + (((Class39) class39).anInt690
						* i_492_ >> 8));
					int i_495_ = (((Class39) class39).anInt684 + (((Class39) class39).anInt691
						* i_492_ >> 8));
					int i_496_ = (((Class39) class39).anInt685 + (((Class39) class39).anInt692
						* i_492_ >> 8));
					if (i_490_ >= i_493_ && i_490_ <= i_494_ && i_489_ >= i_495_
						&& i_489_ <= i_496_) {
						return true;
					}
				}
			} else if (((Class39) class39).anInt686 == 2) {
				int i_497_ = i - ((Class39) class39).anInt680;
				if (i_497_ > 0) {
					int i_498_ = (((Class39) class39).anInt682 + (((Class39) class39).anInt689
						* i_497_ >> 8));
					int i_499_ = (((Class39) class39).anInt683 + (((Class39) class39).anInt690
						* i_497_ >> 8));
					int i_500_ = (((Class39) class39).anInt684 + (((Class39) class39).anInt691
						* i_497_ >> 8));
					int i_501_ = (((Class39) class39).anInt685 + (((Class39) class39).anInt692
						* i_497_ >> 8));
					if (i_490_ >= i_498_ && i_490_ <= i_499_ && i_489_ >= i_500_
						&& i_489_ <= i_501_) {
						return true;
					}
				}
			} else if (((Class39) class39).anInt686 == 3) {
				int i_502_ = ((Class39) class39).anInt682 - i_490_;
				if (i_502_ > 0) {
					int i_503_ = (((Class39) class39).anInt680 + (((Class39) class39).anInt687
						* i_502_ >> 8));
					int i_504_ = (((Class39) class39).anInt681 + (((Class39) class39).anInt688
						* i_502_ >> 8));
					int i_505_ = (((Class39) class39).anInt684 + (((Class39) class39).anInt691
						* i_502_ >> 8));
					int i_506_ = (((Class39) class39).anInt685 + (((Class39) class39).anInt692
						* i_502_ >> 8));
					if (i >= i_503_ && i <= i_504_ && i_489_ >= i_505_ && i_489_ <= i_506_) {
						return true;
					}
				}
			} else if (((Class39) class39).anInt686 == 4) {
				int i_507_ = i_490_ - ((Class39) class39).anInt682;
				if (i_507_ > 0) {
					int i_508_ = (((Class39) class39).anInt680 + (((Class39) class39).anInt687
						* i_507_ >> 8));
					int i_509_ = (((Class39) class39).anInt681 + (((Class39) class39).anInt688
						* i_507_ >> 8));
					int i_510_ = (((Class39) class39).anInt684 + (((Class39) class39).anInt691
						* i_507_ >> 8));
					int i_511_ = (((Class39) class39).anInt685 + (((Class39) class39).anInt692
						* i_507_ >> 8));
					if (i >= i_508_ && i <= i_509_ && i_489_ >= i_510_ && i_489_ <= i_511_) {
						return true;
					}
				}
			} else if (((Class39) class39).anInt686 == 5) {
				int i_512_ = i_489_ - ((Class39) class39).anInt684;
				if (i_512_ > 0) {
					int i_513_ = (((Class39) class39).anInt680 + (((Class39) class39).anInt687
						* i_512_ >> 8));
					int i_514_ = (((Class39) class39).anInt681 + (((Class39) class39).anInt688
						* i_512_ >> 8));
					int i_515_ = (((Class39) class39).anInt682 + (((Class39) class39).anInt689
						* i_512_ >> 8));
					int i_516_ = (((Class39) class39).anInt683 + (((Class39) class39).anInt690
						* i_512_ >> 8));
					if (i >= i_513_ && i <= i_514_ && i_490_ >= i_515_ && i_490_ <= i_516_) {
						return true;
					}
				}
			}
		}
		return false;
	}
}
